最近公司用到了ES搜索引擎,調(diào)研發(fā)現(xiàn)大公司常用的搜索引擎還有Solr。

鑒于 Lucene 強(qiáng)大的特性和穩(wěn)定性,有很多種基于 Lucene 封裝的企業(yè)級(jí)搜索平臺(tái)。其中最流行有兩個(gè):Apache Solr 和 Elastic search。 
Apache Solr:它本身是 Apache Lucene 項(xiàng)目下的開(kāi)源企業(yè)搜索平臺(tái),算是 Lucene 的直系。美團(tuán)、阿里搜索服務(wù)是基于 Solr 來(lái)搭建的。 
Elastic Search:簡(jiǎn)稱 ES,由 Elastic 公司開(kāi)發(fā)。Elastic 成立于 2012 年,總部在阿姆斯特丹,不久前 Google 宣布與 Elastic 達(dá)成戰(zhàn)略合作協(xié)議,為谷歌云提供新的搜索以及相關(guān)分析服務(wù)。 最近幾年,ES 變得越來(lái)越普及,StackOverflow、Github、百度等都在使用。

  一:數(shù)據(jù)源

Solr 支持添加多種格式的索引,比如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等文件格式,還支持 DB 數(shù)據(jù)源。而 Elastic Search 僅支持 JSON 數(shù)據(jù)源。

  二:高并發(fā)的實(shí)時(shí)搜索

基于 Solr 和 ES 都有成熟高可用架構(gòu)設(shè)計(jì)。高并發(fā)的實(shí)時(shí)搜索兩者都沒(méi)有太大問(wèn)題。但是 Elastic Search 讀寫(xiě)并發(fā)性能更優(yōu)于 Solr。

需要注意的是,搜索引擎不推薦像 DB 一樣做類似 like 的通配符查詢,這樣會(huì)導(dǎo)致性大大降低。之前線上有一個(gè) ES 搜索集群,一段時(shí)間 8 核 CPU 的 load 飚到了 10 以上,后來(lái)排查,原