我有一个像下面这样的 mysql 表-
------------
keyword_text
------------
Lego kit for kids
Lego kit only for kids
Lego kit kids
+more different text entry
如您所见,上面示例中的keyword_text 都是相似的。我想找到与上述任何关键字匹配的所有那些。例如,如果我搜索 Lego kit only for kids ,它将返回所有这 3 个关键字文本。
Input:
Lego kit only for kids
Output:
Lego kit for kids
Lego kit only for kids
Lego kit kids
OR
mysql resource to use with mysql_fetch_assoc
该表有大约 1M 的条目,全文索引被添加到keyword_text。是否有任何 mysql 查询来执行此操作或使用 PHP 快速执行此操作的任何类似方法?
感谢帮助
最佳答案
一种方法是查看搜索词和关键字列表之间的 Levenshtein 距离。有几个例子说明如何在 MySQL 中实现这一点,例如。 HERE
因为您的目录如此之大,您需要首先考虑实现过滤器(可能基于“LIKE”查找),这样您就不会测量所有 1M 行的距离。
如果您按距离对结果进行排名,那么您应该能够按与搜索的相关性对结果进行排序。
关于php - Mysql相似文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538675/