php – 如何根据’title’和’description’列在MySQL表中找到
我有一个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‘返回最相似的行(及其相关性得分),而不是布尔匹配搜索. (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |