在我的 mysql 数据库中,我有一个由 37,000(或大约)用户组成的用户表。
当用户在网站上搜索另一个用户时,我会执行一个简单的 like 通配符(即 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”对应项。
虽然我们使用它的时间不长 - 如果您要为 future 的可扩展性构建,我建议您使用 sphinx。
关于mysql - 用户搜索使用MySQL LIKE还是集成搜索引擎(如solr、sphinx、lucene等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7527778/