MySQL全文搜索布尔模式按相关性而不是我要的顺序排序(短语匹配)

克里斯·穆恩奇

我在下面有查询,相关性排名似乎已关闭。

它排名

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

珍妮丝·波蒂斯(Jannes Botis)

让我们首先分析您使用的条件,并按以下条件排序:

MATCH (phppos_items.name) AGAINST ('iphone 8*' IN BOOLEAN MODE)

根据Mysql布尔全文搜索,您可以匹配包含以下任何一个单词的任何文本

  • 苹果手机
  • 8

表示所有具有iphone OR 8的文本均匹配。

您想要的是将“ iphone 8匹配为优先于“ iphone”或“ 8 *”的字符串。

为了达成这个:

  • 将“ iphone 8 *”添加为字符串以进行匹配
  • 使用> <运算符
  • 并赋予它高于“ iphone”和“ 8 *”优先级

将sql查询更改为:

AGAINST ('>"iphone 8*" >iphone <8*' IN BOOLEAN MODE)

在选择语句中

表示优先使用精确的iPhone 8 *和高于8 *的iPhone

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL全文搜索按布尔模式顺序的相关性

MongoDB全文搜索和多个单词按相关性排序

使用“匹配依据”进行全文搜索-将“按相关性”放到工作中

JavaScript 中的模糊搜索,结果按相关性排序

MySQL在句子中的任何位置按相关性获取全字匹配(不是字符)

SOLR按相关性排序

MySQL查询标签搜索的相关性

如何在javascript中按相关性对搜索结果进行排序

以编程方式搜索pypi软件包(最好按相关性排序)

如何将MySQL搜索结果与相关性排序?

MySQL按相关性排序,同时具有多个like

MySQL-具有部分单词匹配和相关性得分(FULLTEXT)的高效搜索

Sitecore内容按字段和相关性搜索

SOLR搜索按相关性得分筛选

Neo4j - 按相关性排序

Mysql全文搜索,自然语言模式:按“紧密度”排序

MySQL查询(全文)按条件按多个顺序搜索

mysql select ... in,计算几个匹配的相关性

MySQL全文搜索“ AND”布尔模式转换为ElasticSearch

MySQL-通过相关性查询订单,无需全文本方法

VS Code 搜索中“要包含的文件”的路径相关性是什么?

Makefile相关性中的强制顺序

在where中使用全文而不是按顺序排序时,带有子查询的MySQL查询花费的时间明显更长

MySQL全文搜索完全匹配无法按预期工作

MarkLogic 搜索相关性权重

相关性的内部搜索优化

弹性搜索中的邻近相关性

Solr中的相关性搜索

MySQL全文搜索,使用PHP和PDO按关联性和整数进行连接和排序