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

查看:133
本文介绍了php - 垂直类的问答库搜索开发,用哪个引擎好的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

想建立个垂直类的问答库
用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个人感觉还属于玩具级别,当然我这种结论是基于早期版本得出的,现在的情况不是很了解。

这篇关于php - 垂直类的问答库搜索开发,用哪个引擎好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆