簡介:
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 | ||