gpt4 book ai didi

MYsql FULLTEXT 查询产生意想不到的排名;为什么?

转载 作者:行者123 更新时间:2023-11-29 02:02:33 24 4
gpt4 key购买 nike

我正在尝试使用标签进行全文搜索,但它对我来说无法正常工作,请附上图片 enter image description here

查询是:

 SELECT *, 
MATCH(tags) AGAINST ('tag3 tag6 tag4') AS score
FROM items
ORDER BY score DESC

为什么分数没有在正确的顺序字段中排序?如果您检查第二行包含我搜索的所有标签,而第一个字段没有 tag3 关键字。

我的意思是 id 字段顺序应该是:5,1,2 .. 等而不是 1,5,2.. 等

我的错误在哪里?

然后我想先在标签字段中搜索然后如果没有结果我想在描述字段中搜索与 FULLTEXT 相同的关键字,所以如果标签不匹配用户将在标签和描述中搜索,是否可以在同一个查询还是我需要两个单独的查询?

最佳答案

在本文档中 http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html它说“对于非常小的表,单词分布并不能充分反射(reflect)它们的语义值(value),这个模型有时可能会产生奇怪的结果。”

如果您的项目表很小——例如一个示例表——您可能会遇到这个问题并得到一个“奇怪”的结果。

您可能希望尝试此查询 IN BOOLEAN MODE 以查看您的结果是否与您的预测相符。试试这个。

    SELECT *, 
MATCH(tags) AGAINST ('tag3 tag6 tag4' IN BOOLEAN MODE) AS score
FROM items
ORDER BY score DESC

bool 模式禁用单词分布排名。请注意,您应该了解自然语言模式和 bool 模式之间的区别,一旦您拥有合适大小的表,就可以明智地选择使用哪一种。如果您要搜索博客中包含的那种标签, bool 值可能是您的不二之选。

关于MYsql FULLTEXT 查询产生意想不到的排名;为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12360047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com