?前言:眾所周知琳省,提供高效、快速的搜索功能能提高網(wǎng)站的運營利潤和效率躲撰,如果網(wǎng)站搜索相關(guān)結(jié)果太低针贬,用戶體驗差,那么用戶將可能會使用競爭對手的網(wǎng)站拢蛋。那么如何提供高效快速的搜索呢桦他?當(dāng)前大約有20種搜索引擎可以選擇,如果您正在尋找可靠而有效的方案谆棱,那么我建議您使用Elasticsearch快压,Solr或Sphinx,這三個都是開源搜索解決方案垃瞧,得到了他們的貢獻者社區(qū)的充分支持蔫劣。它們都具有高性能,可擴展性和靈活性个从,且具有其特性脉幢。
ElasticSearch
?簡介:ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎嗦锐,基于RESTful web接口嫌松。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布奕污,是當(dāng)前流行的企業(yè)級搜索引擎萎羔。設(shè)計用于云計算中,能夠達到實時搜索碳默,穩(wěn)定外驱,可靠育灸,快速,安裝使用方便昵宇。官方客戶端在Java磅崭、.NET(C#)、PHP瓦哎、Python砸喻、Apache Groovy、Ruby和許多其他語言中都是可用的蒋譬。根據(jù)DB-Engines的排名顯示割岛,Elasticsearch是最受歡迎的企業(yè)搜索引擎,其次是Apache Solr犯助,也是基于Lucene癣漆。
優(yōu)點:
- 近實時索引
- 高可擴展性(隨著數(shù)據(jù)的增長,Elasticsearch會擴展)
- 可以存儲數(shù)據(jù)(主要存儲索引數(shù)據(jù)和日志)
- 數(shù)據(jù)可視化和分析
- 安全分析
- 機器學(xué)習(xí)
缺點:
- 許多功能需要自己擴展
Solr
?簡介:Solr是一個獨立的企業(yè)級搜索應(yīng)用服務(wù)器剂买,它對外提供類似于Web-service的API接口惠爽。用戶可以通過http請求,向搜索引擎服務(wù)器提交一定格式的XML文件瞬哼,生成索引婚肆;也可以通過Http Get操作提出查找請求,并得到XML格式的返回結(jié)果坐慰。
優(yōu)點:
- 近實時索引
- 多值屬性搜索(非常適合電商)
- 豐富的功能集(開箱既用较性,豐富的全文搜索功能,支持各種建議器實現(xiàn),支持拼寫檢查,支持同義詞,突出顯示)
- 豐富的內(nèi)容文檔(適合需要查看大量PDF,word文件的項目)
- 支持機器學(xué)習(xí)
- 支持數(shù)據(jù)可視化
缺點:
- 頻繁修改數(shù)據(jù)會導(dǎo)致性能降低(Solr緩存是全局的结胀,修改緩存會導(dǎo)致索引需要重新建立赞咙,這個過程是耗時的)
Sphinx
?簡介:Sphinx 是一個工具,它能夠輕易地創(chuàng)建智慧和優(yōu)雅的文檔糟港,出自Georg Brandl之手人弓,在BSD許可證下授權(quán)。它能夠把一組 reStructuredText 格式的文件轉(zhuǎn)換成各種輸出格式着逐,而且自動地生成交叉引用,生成目錄等意蛀。也就是說耸别,如果有一個目錄,里面包含一堆reST格式的文檔(可能子目錄里面也同樣存在reST格式的文檔)县钥,Sphinx能夠生成一個漂亮的組織結(jié)構(gòu)以及便于瀏覽和導(dǎo)航的HTML 文件(這些文件在其他的文件夾中)秀姐。當(dāng)然對于同樣的來源文件(reST格式),它也能夠生成一個能夠被編譯(生成)PDF版本的LaTeX格式的文件
優(yōu)點:
- 近實時索引
- 多值屬性搜索
- 資源更好的利用(沒有數(shù)據(jù)可視化和分析節(jié)約了資源)
缺點:
- 不支持數(shù)據(jù)可視化
- 不支持機器學(xué)習(xí)
- 不支持數(shù)據(jù)存儲
- 配置繁瑣
總結(jié):
?ElasticSearch更適合使用在實時更新數(shù)據(jù)的項目中若贮,例如 優(yōu)步省有,新浪等痒留,Solr則擁有更快的檢索速度和更豐富的功能機和多屬性搜索更適合電商項目,而Sphinx在分面搜索功能方面擁有豐富的經(jīng)驗.總而言之蠢沿,根據(jù)不同的項目選擇搜索引擎才是最優(yōu)解伸头。
?開發(fā)人員僅僅知道搜索引擎是不夠的,所以我會在下篇博文分享搜索引擎的安裝和使用等舷蟀,敬請關(guān)注恤磷。