全文检索:sphinx_elasticsearch_xunsearch选型分析

全文检索:sphinx_elasticsearch_xunsearch选型分析

开发语言:

Sphinx和Xunsearch是基于C/C++开发、Elasticsearch基于java开发

MySQL数据导入及索引生成:

Sphinx > Elasticsearch > Xunsearch
Sphinx跟RDBMS(特别是MYSQL)绑定的特别紧密,在导入MySQL数据生成索引时,从易用性、可靠性、速度上来看,Sphinx优于ElasticSearch。Sphinx真的很快。ElasticSearch官方文档上,数据都是使用RESTful接口一条一条插入的,也就是增量更新。有个bulk接口,可以批量导入、大幅加快速度

增量更新支持:


ElasticSearch、Xunsearch优于Sphinx。ElasticSearch、Xunsearch把增量更新作为首选CURD方式;而Sphinx使用辅助表的方案不但不优雅,还会让你的其他系统变得复杂起来,在你频繁更改单条数据的时候很容易出错。

可视化与辅助管理工具:

ElasticSearch:Kibana,Beats,Logstash,Marvel,Head
Sphinx:Sphinx Tools
PS:Kibana支持可视化的报表数据,Beats、Logstash偏重于log收集

检索速度:

Sphinx > Elasticsearch > Xunsearch

PS: 如果配置群集,群集越多搜起来就越快

对中文支持:

Xunsearch > Sphinx,Xunsearch支持拼音搜索

搜索算法支持 - Ranker自定义:

Elasticsearch > Sphinx > Xunsearch

PS:在自定义Ranker方面,Elastic Search的Function Score Query比Sphinx的expression-ranker强大许多。

横向扩展与高可用:

Elasticsearch > Sphinx

PS:Xunsearch未发现群集/分布式之列的文档。ElasticSearch有更强的横向扩展能力和高可用性。

资源占用:

Sphinx > Elasticsearch > Xunsearch

易用性:

Xunsearch > Sphinx > Elasticsearch

PS:'>'符号理解为优于。


https://www.fity.cn/post/640.html