【发布时间】:2011-06-22 04:36:07
【问题描述】:
我想在我的网站上搜索文章 - 可以只使用简单的“LIKE”语句,还是有更好的搜索算法与 MySQL 一起使用? (重要的是要高效)
【问题讨论】:
我想在我的网站上搜索文章 - 可以只使用简单的“LIKE”语句,还是有更好的搜索算法与 MySQL 一起使用? (重要的是要高效)
【问题讨论】:
我会考虑使用 Apache Solr https://lucene.apache.org/solr/ 或弹性搜索 http://www.elasticsearch.org/
【讨论】:
可以只使用简单的“LIKE”语句还是有更好的 与 MySQL 一起使用的搜索算法? (重要的是要高效)
如果高效很重要,那么我认为LIKE is absolutely not the way to go。
全文搜索:392 秒全文搜索(缓存):272 秒
Full Text Boolean Mode 12 Sec Full Text Boolean (Cached) 11 Sec
Mnogosearch(外部)3.5 秒 Mnogosearch(外部缓存)1.06 秒
Sphinx 0.23 秒 Sphinx 缓存 0.15 秒
LIKE %...% 30 秒秒 LIKE %...%(缓存)29 秒秒
可能Sphinx 是最有效的方法,它也支持MySQL。老实说,我自己从未使用过Sphinx,但一些非常大的网站使用它。
设置另一个(可能是最后一个)替代方案可能更难。
我也认为MySQL full-text-search 可能足够快并且更易于使用。
【讨论】:
您应该考虑使用Full-Text Search。
它还可以帮助您了解Tradeoffs of MySQL LIKE vs Full-Text
【讨论】: