全文检索: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
对中文支持:
Xunsearch > Sphinx,Xunsearch支持拼音搜索
搜索算法支持 - Ranker自定义:
Elasticsearch > Sphinx > Xunsearch
横向扩展与高可用:
Elasticsearch > Sphinx
资源占用:
Sphinx > Elasticsearch > Xunsearch
易用性:
Xunsearch > Sphinx > Elasticsearch
PS:'>'符号理解为优于。