gpt4 book ai didi

mysql - boolean 全文搜索排除短语 AB-CD,例如-"AB-CD"?

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

我有一个表格,其中填充了某些值,例如

| CODE  | NAME        | NB: THIS IS A VERY BASIC EXAMPLE
| zygnc | oscar alpha |
| ab-cd | delta tiger |
| fsdys | delta bravo |

使用 MySQL 全文 boolean 搜索,我想在该表中搜索包含“delta”的所有名称,但根据其唯一代码“ab-cd”排除第一个结果。此代码包含一个减号,这是一个要求,删除它是不可能的。

因此,我认为以下查询“应该”适应这一点:

SELECT code, name
FROM items
WHERE MATCH (code, name)
AGAINST ('delta -"ab-cd"' IN BOOLEAN MODE)

但是,运行此查询不会产生所需的结果,因为结果仍然包含带有要排除的代码“ab-cd”的行。

这两个表的Coalition设置为utf8_bin。

ft_min_word_len 值设置为 4。

有人可能会提出这种行为的原因吗?我假设它将字符串可能视为两个单独的值,例如"-ab", "-cd"并且 ft_min_word_len 值为 4,这两个字符串都不能产生任何结果?

我认为使用封装“”意味着第二个减号将被视为文字,但似乎情况并非如此。也许这与我不知道的表联盟有关?

无论如何,任何建议/建议/意见/反馈/方向将不胜感激,谢谢!!

最佳答案

您需要更改 my.cnf 文件中变量 ft_min_word_len 的值。

默认 ft_min_word_len 值为 3。一旦更改变量,需要重新启动服务器。

这里“ab-cd”被视为两个单词“ab”和“cd”。所以最小字长与单词不匹配。

关于mysql - boolean 全文搜索排除短语 AB-CD,例如-"AB-CD"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694744/

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