php - Mysql相似文搜索

标签 php mysql

我有一个像下面这样的 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/

相关文章:

php - 如何在 SimpleSAMLphp 中更改 NameID

php - 确定用户输入包含 URL

mysql - 在 Spring Boot 中创建表并从 .sql 文件导入数据

c# - 将具有相同主键的 2 个表连接 SQL Server 到 C#

mysql - 将计数查询转换为 CakePHP 中包含语句中的列表

javascript - CodeIgniter - 使用表单辅助函数创建动态 html 表?

php - 当我尝试插入 ip2long 整数时,错误的整数被插入到表中

php - 在 Magento 1.9 中为自定义模块创建自定义表时出错

PHP 从 MySql 拉取

php - 如何在 html 上发出 iframe 请求?