MySQL-如何选择搜索引擎:Lucene、Sphinx还是MySQL的全文检索?

发布于 2017-01-18 16:19:31 字数 96 浏览 1528 评论 7

我们网站现在需要一个站内的全文搜索引擎,目前待选的有:Lucene、Sphinx、MySQL自带的全文检索,大伙有相关经验的可以说下应该用哪个呢?或者你还有别的建议也可以提出来。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

想挽留 2017-11-09 05:46:13

Sphinx支持高速建立索引(可达10MB/秒,而Lucene建立索引的速度是1.8MB/秒)
高性能搜索(在2-4 GB的文本上搜索,平均0.1秒内获得结果)
高扩展性(实测最高可对100GB的文本建立索引,单一索引可包含1亿条记录)
支持分布式检索
支持基于短语和基于统计的复合结果排序机制
支持任意数量的文件字段(数值属性或全文检索属性)
支持不同的搜索模式(“完全匹配”,“短语匹配”和“任一匹配”)
支持作为Mysql的存储引擎(可以只改变sql就能实现全文搜索)
coreseek就是基于sphinx的实现

清晨说ぺ晚安 2017-10-10 11:37:15

如果是用php作服务器端脚本,最好还是用sphinx。如果用java做服务器端脚本,最好用Lucene。sphinx相比lucence,配置简单,易用,功能没有lucencename完善和强大。

偏爱自由 2017-08-17 21:37:19

我觉得应该选择Lucene,基于以下几点:
1.Sphinx和MySQL是基于数据库的全文引擎,创建索引是B+树和hash key-value的方式。而Lucene使用的倒排序索引,即每个词与包含这个词的文件形成对应关系。这样对于搜索文档,显然倒排序索引快。
2.Lucene除了索引功能,还提供文件格式识别(并建立索引)、分词(以前用的版本只有英文、德文等欧洲的语言)、评分算法(依据此结果排序)、多种搜索方式(组合、模糊、正则等)、搜索词高亮显示等诸多功能。
3.为C/S和B/S方式分别提供支持。
4.Lucene提供多种语言开发的版本,如:C++、Java、C#、Ruby、Python等。
5.提供扩展接口,方便功能扩展。

可以参考下<<Lucene In Action>>这本书。
我用Lucene做过企业内部全文检索系统,效果不错。

泛泛之交 2017-06-03 23:11:53

我们公司现在用的是 coreseek (sphinx)

偏爱自由 2017-04-13 07:03:00

我觉得选一个合适的才是最主要的,里面各有各的优点缺点,应该根据业务及数据量来确定。
lucene功能强大,和消息队列结合会很好,唯一的缺点就是索引难维护,特别是多个索引的情况下。sphinx不需要太注重索引维护,但是它的缺点就是不太能实时的更新索引,支持的功能没有LUCENE强大,但是足够一个中小型网站使用。

虐人心 2017-03-01 13:41:34

没有人推荐solr吗?基于lucence的企业级搜索,虽然也是java,但提高xml,json等http服务,php操作也很方便的。

归属感 2017-01-22 22:33:38

比较推荐sphinx
部署 sphinx编译,部署,配置都不复杂,不需要代码级的修改。支持原生的mysql数据源,也支持xml数据。
搜索API支持PHP、Python、Perl、Rudy和Java,使用简单,可以在短时间内移植到新语言上。

对于中文搜索,国内有coreseeksphinx-for-chinese两个版本,内部使用了mmseg这个分词器。用户可以自定义分词库。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文