繁体   English   中英

用户搜索使用MySQL LIKE还是集成了搜索引擎(例如solr,狮身人面像,lucene等)?

[英]User search use MySQL LIKE or integrate a search engine (such as solr, sphinx, lucene etc.)?

在我的mysql数据库中,我有一个由37,000个(或其左右)用户组成的用户表。

当用户在网站上搜索另一个用户时,我执行一个简单的通配符(例如LIKE'{name}%})以返回找到的用户。

使用诸如solr这样的搜索引擎进行“喜欢”搜索会更有效,更快捷吗? 此外? 我相信Solr可以使用通配符查询( http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/

老实说,使用LIKE查询目前并没有那么慢,但是随着用户数量的增加,它会变得越来越慢。 任何提示或建议,不胜感激。

大约一个月前,我们遇到了类似的情况,我们的数据库大约为33k左右,由于我们的引擎是InnoDB,因此我们无法利用MySQL全文搜索功能(而且它很钝)。

我们决定实施sphinxsearch(http://www.sphinxsearch.com),结果的确给我们留下了深刻的印象(我成为了它的“粉丝”)。

如果我们对所有行的许多列(左联接的负载)进行大型索引搜索,则实际上针对MySQL'LIKE'对应对象的查询响应时间减少了一半。

尽管我们已经使用了很长时间-如果您打算为将来的可靠性而建,我还是建议您使用狮身人面像。

如果搜索词必须至少包含3个字符,则可以加快搜索速度,并使用3个字符的索引大小对搜索列进行索引。

它实际上已经内置在MySQL中: http : //dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

我们将solr用于此目的,因为即使在索引了数百万个文档的情况下,您也可以在1-2毫秒内进行搜索。 我们使用数据导入处理程序镜像mysql实例,然后在Solr上搜索。

正如neville指出的那样,全文搜索内置在mysql中,但是solr性能要好得多,因为它是全文搜索引擎而诞生的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM