我在下面有查询,相关性排名似乎已关闭。
它排名
iPhone 5C Used Verizon 8GB 58165 White
比......高
iPhone 8 Front Camera Flex
它似乎正在做的是对搜索阶段中单词计数的次数进行排名。如果单词彼此相邻,我想给出更高的相关性(如上所示)
SELECT phppos_items.name, MATCH (phppos_items.name) AGAINST ('iphone 8*' IN BOOLEAN MODE) as rel
FROM phppos_items
WHERE MATCH (phppos_items.name) AGAINST ('iphone 8*' IN BOOLEAN MODE)
ORDER BY `rel` DESC;
结果(太大,无法粘贴)
https://gist.github.com/blasto333/d8f8fe470cc1cfb1f959922ea77f8134
让我们首先分析您使用的条件,并按以下条件排序:
MATCH (phppos_items.name) AGAINST ('iphone 8*' IN BOOLEAN MODE)
根据Mysql布尔全文搜索,您可以匹配包含以下任何一个单词的任何文本:
表示所有具有iphone OR 8的文本均匹配。
您想要的是将“ iphone 8 ”匹配为优先于“ iphone”或“ 8 *”的字符串。
为了达成这个:
将sql查询更改为:
AGAINST ('>"iphone 8*" >iphone <8*' IN BOOLEAN MODE)
在选择语句中
表示优先使用精确的iPhone 8 *和高于8 *的iPhone。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句