繁体   English   中英

MySql FULLTEXT搜索相关性调整

[英]MySql FULLTEXT search relevance adjustment

通过查看此处的其他帖子,我无法找到我的特定要求。

这是我的例子

我的数据库中有一些带有以下标题的产品。 如果用户搜索“蘑菇派”,这就是我希望它们出现的顺序

1.蘑菇派2.蘑菇派3.派蘑菇4.蘑菇汤5.猪肉派6.蘑菇和野蘑菇汤

我已经在产品数据库的“标题”字段中添加了全文...但是很遗憾,它没有按照我的意愿进行。

SELECT products.title ,products.normalisedCode
FROM products
WHERE MATCH (title) AGAINST ('+mushroom +pie' )

这将“蘑菇和野生蘑菇汤”放在我的结果顶部...我想这是因为“蘑菇”在标题中出现了两次。

另外,当我添加另一个“喜欢”声明时

SET CHARACTER SET utf8;
SELECT products.title ,products.normalisedCode
FROM products
WHERE MATCH (title) AGAINST ('+mushroom +pie' ) 
OR products.normalisedCode LIKE CONCAT('%', normaliseNumString('mushroom'), '%') 

这完全弄乱了排序...我尝试使用布尔匹配模式...但是这只会带回标题中带有两个关键词的产品...我需要它带回标题中带有两个单词的任何产品但是将两个单词都正确排列在结果的顶部。

希望这是有道理的。

谢谢!

试试这个:

SELECT (MATCH(title) AGAINST ('mushroom Pie')) as Relevance,
products.title ,products.normalisedCode

FROM products 
WHERE MATCH (title) AGAINST ('+mushroom +Pie' )

ORDER BY Relevance DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM