在Square做了一年搜索的工程师想和你聊聊这些事
Square 是一家很神奇的技术驱动的公司。这个公司的文化很独特,就工程师文化来说,早期 Square 在技术上还是比较大胆和激进的。
为什么这么说呢?举几个例子。虽然 Square 的核心产品是信用卡读卡器,但 Square 尝试开发过的产品真的很多,虽然不是每一个产品都长久地活了下来。比如电商平台、电子钱包、Payroll 系统,等等等等。另外 Square 早期有一批很 Nerdy 的技术人,包括 Rails 的 Contributor、Java Guice 的发明者等等。并且 Square 从不打怵使用新技术,比如 ElasticSearch、Kafka 等,在版本还没有稳定的时候,Square 已经在产品上使用了。而且因为我们是自己的 Data Center,没有使用 Amazon。所有的配套服务,包括 Deploy 以及 Production 的工具和环境,一套套系统全部都是 Build in House。以上种种,可能和我们创始人 Jack 本身是技术出身有一定的关系。
虽然说这些对于一个公司的发展不一定完全都是好事,但是对于工程师来说,却是一个绝佳的成长环境。一来有机会接触到新技术、或者技术的最前沿。二来因为不停的做新产品,所以早期的时候几乎每个项目都是两三个人从头到尾完全自己搭建。
我在 Square 做过两个大项目,一个就是和前 Google 员工 Ken 两个人一起搭建了 Square 的搜索后端。另一个就是和 Eric 一起做了 Square Store 这个电商平台,主要处理所有 Square 软硬件销售的支付流程。
虽然后来在支付这条路上走了下去,当时一年左右做搜索的经历,还是蛮有意思的。所以想整理一下,分享给大家。当然,一年的经验离资深还差得很远,所以可能说的东西就入不了专家的法眼,因此本文称为 “白话”。
基本概念
搜索说白了就是从已有的数据和信息里找到满足用户条件的一些匹配。
拿最简单的数据库来说,完成用户对数据库的搜索,不外乎这样几个概念:数据存储格式,也就是 Table Schema;新数据的写入;对 Table 的查询;其中又包括 Indexing 来对部分查询的 Pattern 进行性能上的优化;另外可以根据某些 Column 的值对查询结果进行排序。
搜索引擎从基本概念上来说,也是极类似的。例如常见的 Apache Solr 和 Elasticsearch(以下简称 ES),这两者都是建立于 Lucene 之上的,且最核心的功能很类似。(Lucene 其实就是一个搜索引擎 Library,有一堆 Jar 文件,并提供一个 Lucene API 接口。)因为直接用 Lucene API 相对来说更灵活,但是需要更多的 Engineering Effort 才能使用,所以很多地方都是使用 Solr 或者 ES,两者都是基于 Lucene 之上添加了很多可用 Feature 的一个封装。
Indexing
Solr 和 ES 的 Schema 也可以看成定义数据的存储格式和 Structure。这样,当你有新的数据需要存到你的可搜索数据集的时候,就需要把原始数据转化为 Solr 和 ES 文档定义的数据格式。这个过程通常称为 Indexing,或者 ETL。ETL 是 Extract - Transform - Load 的简称。(责任编辑:方向)
- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。