加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 如何根据’title’和’description’列在MySQL表中找到

发布时间:2021-08-28 03:48:55 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有一个MySQL表存储一些用户生成的内容.对于每个内容,我有一个标题(VARCHAR 255)和一个描述(TEXT)列. 当用户正在查看记录时,我希望根据类似的标题/描述找到与其“相似”的其他记录. 这样做的最佳方法是什么?我正在使用PHP和MysqL. 我最初的想法是: 1)从标

我有一个MySQL表存储一些用户生成的内容.对于每个内容,我有一个标题(VARCHAR 255)和一个描述(TEXT)列.

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

这样做的最佳方法是什么?我正在使用PHP和MysqL.

我最初的想法是:

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

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

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

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

解决方法:

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

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

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

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

编辑:

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

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读