简介:
Sphinx 是一款基于SQL的高性能全文检索引擎
Elasticsarch 是一个分布式的开源搜索和分析引擎
Xunsearch 基于 xapian 和 scws 开发的全文搜索引擎
比较:
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 优于 SphinxElasticSearch、Xunsearch把增量更新作为首选CURD方式;Sphinx使用辅助表的方案不但不优雅,还会让你的其他系统变得复杂起来,在你频繁更改单条数据的时候很容易出错 | ||
可视化与辅助管理工具 | Sphinx Tools | Kibana,Beats,Logstash,Marvel,HeadKibana支持可视化的报表数据,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 | ||