【问题标题】:Mysql similar text searchMysql相似文本搜索
【发布时间】:2013-05-08 11:14:10
【问题描述】:

我有一个如下所示的 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

该表有大约 100 万个条目,全文索引已添加到 keyword_text。是否有任何 mysql 查询可以做到这一点或任何类似的方式可以使用 PHP 快速做到这一点?

感谢您的帮助

【问题讨论】:

标签: php mysql


【解决方案1】:

一种方法是查看搜索词和关键字列表之间的 Levenshtein 距离。有一些关于如何在 MySQL 中实现此功能的示例,例如。 HERE

因为您拥有如此庞大的目录,所以您需要先考虑实施过滤器(可能基于“LIKE”查找),这样您就不会测量所有 1M 行的距离。

如果您按距离对结果进行排名,那么您应该能够按与搜索的相关性对结果进行排序。

【讨论】:

  • 截至 2015 年 7 月 3 日的死链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
  • 2015-11-18
  • 2014-10-30
  • 2019-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多