全文檢索:sphinx elasticsearch xunsearch 比較


簡介:

Sphinx 是一款基於SQL的高性能全文檢索引擎

  • 快速創建索引:3分鍾左右即可創建近100萬條記錄的索引,並且采用了增量索引的方式,重建索引非常迅速。

  • 閃電般的檢索速度:盡管是1千萬條的大數據量,查詢數據的速度也在毫秒級以上,2-4G的文本量中平均查詢速度不到0.1秒。

  • 為很多腳本語言設計了檢索API,如PHP,Python,Perl,Ruby等,因此你可以在大部分編程應用中很方便地調用Sphinx的相關接口。

  • 為MySQL設計了一個存儲引擎插件,因此如果你在MySQL上使用Sphinx,那簡直就方便到家了。

  • 支持分布式搜索,可以橫向擴展系統性能。

Elasticsarch 是一個分布式的開源搜索和分析引擎

  • Elasticsearch 是一個分布式的、開源的搜索分析引擎,支持各種數據類型,包括文本、數字、地理、結構化、非結構化。

  • Elasticsearch 是基於 Apache Lucene 的。

  • Elasticsearch 因其簡單的 REST API、分布式特性、告訴、可擴展而聞名。

  • Elasticsearch 是 Elastic 產品棧的核心,Elastic 產品棧是個開源工具集合,用於數據接收、存儲、分析、可視化。

Xunsearch 基於 xapian 和 scws 開發的全文搜索引擎

  • 簡單易用:前端是使用腳本語言編寫的開發工具 (SDK),目前支持 PHP 語言。API 簡單清晰,開發難度極低,提供全中文的示例代碼、文檔、輔助腳本工具等。

  • 搜索功能齊全:支持包括字段檢索、結果高亮、 字段排序、布爾語法、區間檢索、聚合搜索、相關搜索、權重微調、拼音搜索、 搜索建議等等專業搜索引擎具備的功能。

比較:

  Sphinx Elasticsarch Xunsearch
開發語言 基於C/C++ 基於java 基於C/C++
搜索功能支持 1. 全文
2. 自動完成建議
3. 分面
4. 多字段
5. 同義詞(稱為字形)
6. 地理空間
7. 突出顯示(稱為片段)
8. 拼寫檢查(稱為qsuggest)
1.全文
2.自動完成建議
3.分面
4.多場
5.同義詞
6.模糊
7.地理空間
1.全文
2.搜索建議
3.分面
4.拼音搜索
5.突出顯示
6.權重微調
7.拼寫檢查/糾錯
8.突出顯示
MySQL數據導入速度 Sphinx > Elasticsearch > Xunsearch
增量更新支持

ElasticSearch、Xunsearch 優於 Sphinx

ElasticSearch、Xunsearch把增量更新作為首選CURD方式;

Sphinx使用輔助表的方案不但不優雅,還會讓你的其他系統變得復雜起來,在你頻繁更改單條數據的時候很容易出錯

可視化與輔助管理工具 Sphinx Tools

Kibana,Beats,Logstash,Marvel,Head

Kibana支持可視化的報表數據,Beats、Logstash偏重於log收集

 無
檢索速度 Sphinx > Elasticsearch > Xunsearch
對中文支持 Xunsearch 優於 Sphinx、Elasticsearch,Xunsearch支持拼音搜索
搜索算法支持-Ranker自定義

Elasticsearch > Sphinx > Xunsearch

在自定義Ranker方面,Elastic Search的Function Score Query比Sphinx的expression-ranker強大許多。

橫向擴展與高可用

Elasticsearch > Sphinx(Xunsearch支持分布式不支持群集,前端和后端可以分離部署在不同服務器中)

資源占用 Sphinx > Elasticsearch > Xunsearch
易用性 Xunsearch > Sphinx > Elasticsearch
檢索API語言支持  多語言 多語言 只 PHP
支持數據類型

文本、數字、地理(Geo)、結構化、非結構化

Sphinx適用於結構化數據(預定義文本字段和非文本屬性),但它不是處理非結構化數據(DOC,PDF,MP3等)的項目的最佳選擇

文本、數字、地理(Geo)、結構化、非結構化 文本、數字
數據存儲形式   Json  
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM