欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

垂直类的问答库搜索开发,用哪个引擎好

程序员文章站 2022-06-17 13:10:24
...
想建立个垂直类的问答库
用php+mysql(后期可能会用上redis或者mogodb)
牵涉到一些专业的词库,并且后期希望能够根据用户的语义来调整搜索结果

目前看了下
主流的 迅搜,sphonix,elasticsearch,solr
时间有限,用哪个开发成本比较低?
用过的伙伴 给个建议 谢谢·~

回复内容:

想建立个垂直类的问答库
用php+mysql(后期可能会用上redis或者mogodb)
牵涉到一些专业的词库,并且后期希望能够根据用户的语义来调整搜索结果

目前看了下
主流的 迅搜,sphonix,elasticsearch,solr
时间有限,用哪个开发成本比较低?
用过的伙伴 给个建议 谢谢·~

四个都用过,开发成本基本一致,因为这四个都有主流语言的sdk可以直接用,要说成本就是这四个软件的配置成本,但都比较简单。
说下大致区别
xunsearch自带中文分词使用的是scws,分词效率准确率都不错,而且带词性。索引建立速度还可以。查询效率高。但是由于它基于xapian,缺少一些语法糖。且我们在重建索引时出现过丢失索引的情况。当时的数据规模大概在千万级别,mysql 中数据大小为35G左右。不知道是不是因为是早期版本的原因。
sphinx建立索引相对较慢,没有自带中文分词,但是可参考coreseek,也可自己配分词器。支持很多主流分词器。查询性能较弱,且分布式支持不太完美。功能有部分缺失,如xunsearch中的搜索折叠。但优点是容易上手,相对稳定。
solr/es 这两个整体上差不多,但国内目前solr资料要比es多,中文分词支持的也好,常见的如ik,jieba等分词都有支持。效率这两者差不多,查询和建立都很快。都有很好的分布式方案。个人感觉es的分布式要好一点,至少配置上比solr简单。solr5之后架构也做了调整,但目前国内很多资料还是基于solr4的。
其实索引更换和迁移的成本并不高,建议数据规模不大的时候可以先用sphinx,简单稳定。当出现性能瓶颈时,不建议折腾sphinx的分布式,而直接换用solr或es就行。xunsearch个人感觉还属于玩具级别,当然我这种结论是基于早期版本得出的,现在的情况不是很了解。

sphinx简单 elasticsearch/solr 功能多, 对于搜索引擎来说重要的是一个相对准确的词库,用什么搜索都差不多

推荐sphinx,操作简单