构建mySQL & PHP搜索的最佳方法是什么?
我目前使用的东西如下
%术语%
我希望它能够找到结果,即使他们拼错了,例如:
字段值=“1:停止商店:
他们搜索:
一个商店站
或
一站式商店
等等。我想要一个非常聪明的搜索,所以他们找到信息,即使他们没有搜索到确切的东西。
建立这样的智能搜索的最好方法是什么?
发布于 2011-01-10 04:09:11
like '%term%'非常慢且未优化,您可能需要为本专栏和为此使用布尔模式。添加全文。
比如
match(column) against('+One +Shop +Stop' in boolean mode)请注意,最小单词长度为4,因此,您需要考虑将其更改为3,并且全文搜索仅适用于myisam。
像斯芬克斯这样的开源搜索引擎也是理想的选择。
发布于 2013-09-24 18:00:59
Ajreal is right...just认为我应该添加一个示例来帮助解决这个问题:
$query = sprintf("SELECT *,
MATCH(col1, col2) AGAINST('%s' IN BOOLEAN MODE) AS relevance
FROM my_table
ORDER BY relevance DESC LIMIT 20", $keyword);
$rs = $conn->query($query);希望这能有所帮助
发布于 2011-01-10 04:21:03
通过搜索原始数据无法提高效率。这种文本搜索取决于数据的索引方式(这就是Google引入Google的原因)。
所以,第一步是索引。如果您的数据在某些网页中,您可以使用现有的标准爬虫(甚至可以轻松构建自己的爬虫,我建议用python来构建爬虫器)。如果您的数据位于某个文件中(而不是可浏览的web文件),那么为了建立索引,您需要编写一个程序来读取所有数据并对其进行索引。
第二步是搜索。检索方法依赖于索引策略。
如果您正在寻找基于php-mysql的系统,请查看这些项目的代码:
http://www.phpdig.net/
http://sphinxsearch.com/
如果您想了解更多信息,请在IEEE Xplore/ACM出版物档案中搜索。你会得到很多关于这个主题的论文。
https://stackoverflow.com/questions/4643296
复制相似问题