我有一个专栏,里面有一部电影的类型(最多有三个用斜线隔开的说明符),比如“喜剧/浪漫/冒险”。mysql或php中是否有类似的函数,允许我将一部电影的类型与其他行的其他类型进行比较,并按相似性排列?例如,拥有一部带有“喜剧/浪漫/冒险”的电影,会让电影先有三种类型,然后是其中两种类型的电影,最后可能是其中一种类型的电影。
最佳答案
如果在“流派”列上启用full-text indexing,则可以执行此操作。我建议使用一个外部的全文搜索引擎(如狮身人面像)来处理这一点,因为MySQL内置的全文索引实际上并不是那么棒。
首先,在“流派”字段中设置全文索引ALTER TABLE movies ADD FULLTEXT INDEX (genre);
然后你就可以这样选择:
SELECT *, MATCH(genre) AGAINST ('comedy romance adventure') AS relevancy FROM movies ORDER BY relevancy DESC;
关于php - mysql中的单词相似性/相似性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5383413/