php – 如何根据’title’和’description’列在MySQL表中找到’相似’记录?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何根据’title’和’description’列在MySQL表中找到’相似’记录?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 MySQL表存储一些用户生成内容.对于每个内容,我有一个标题(VArchAR 255)和一个描述(TEXT)列. @H_403_7@

@H_403_7@当用户正在查看记录时,我希望根据类似的标题/描述找到与其“相似”的其他记录.

@H_403_7@这样做的最佳方法是什么?我正在使用PHPMysqL.

@H_403_7@我最初的想法是:

@H_403_7@1)从标题和描述中删除常用单词以留下“唯一”关键字,然后找到共享这些关键字的其他记录.

@H_403_7@例如:“鲍勃在凌晨5点醒来并上学”,关键词是:“鲍勃,醒来,5,去,学校”.然后,如果有另一条记录的标题是“bob”和“school”,它们将被视为“相似”.

@H_403_7@2)或者使用MysqL的全文搜索,虽然我不知道这对于这样的事情是否有用?

@H_403_7@两种方法哪种方法会更好,还是有另一种方法更好?

解决方法

我会保持这么短(可能太长了)…… @H_403_7@

@H_403_7@我不会选择“手动”关键字或修改原始数据.

@H_403_7@MysqL支持使用MyISam(不是InnoDB)引擎进行全文搜索.查询数据库时可用选项的完整描述here.查询可以自动删除数据集中常见的停用词和单词(超过50%的行包含它们),具体取决于查询方法.查询扩展也可用,查询类型应根据您的需要决定.

@H_403_7@考虑使用像Lucene这样的独立引擎.使用Lucene,您可能会有更多功能和更好的索引/搜索.您可以自动删除常用词(它们获得低分并且不影响搜索)并将事物用作词干.有一点学习曲线,但我肯定会研究它.

@H_403_7@编辑:

@H_403_7@MysqLfull-text natural language search‘返回最相似的行(及其相关性得分),而不是布尔匹配搜索.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何根据’title’和’description’列在MySQL表中找到’相似’记录?全部内容,希望文章能够帮你解决php – 如何根据’title’和’description’列在MySQL表中找到’相似’记录?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。