【发布时间】:2014-04-28 03:51:52
【问题描述】:
我有一个基本的 SQL 搜索引擎,如下所示:
SELECT * FROM table_name WHERE row_name LIKE '%$keyword%'
将其用作基本搜索引擎可以正常工作,但是如果有人拼错了某些内容,则根本无法使用。用户查询需要与数据库中条目的至少一部分完全匹配。我的问题:有没有办法解决这个问题,如果有人拼错了什么,仍然会返回结果。让计算机返回最佳搜索结果,而不是什么都不返回。我真的希望查询看起来像
SELECT * FROM table_name WHERE row_name MOSTLY LIKE '%$keyword%'
没有MOSTLY LIKE 运算符,但我想知道我会用什么来模拟类似的东西。
注意:变量$keyword是用户输入
【问题讨论】:
-
从了解 Levenshtein 距离开始(你可以用谷歌搜索)。不幸的是,如果您有大量关键字和大量文本,则计算量相对较大。
标签: php mysql sql search search-engine