gpt4 book ai didi

MySQL 全文 MATCH AGAINST 不适用于复数

转载 作者:行者123 更新时间:2023-11-29 21:14:35 28 4
gpt4 key购买 nike

我正在尝试在 mySQL 中进行简单的全文搜索,但在复数方面遇到一些问题。

我确实相信我符合50% 规则

我不认为我使用了停用词

我正在运行这样的查询:

SELECT * FROM product_detail WHERE MATCH(product_detail.title, product_detail.content) AGAINST('rake' IN BOOLEAN MODE)
  • 22 个结果

然后我运行:

SELECT * FROM product_detail WHERE MATCH(product_detail.title, product_detail.content) AGAINST('rakes' IN BOOLEAN MODE)
  • 0 个结果

搜索“a rake”或“the rake”会返回全部 22 个结果,但“rakes”、“raker”、“raked”会返回零。我只是在 phpMyAdmin 中运行这些查询,因此没有其他干扰。

我忽略了什么?

最佳答案

bool 搜索不使用 50% 规则。

如果“rake”存储在您的 FULLTEXT 列中,则使用“rake”、“a rake”和“the rake”进行全文搜索都将返回该行,因为搜索值都包含单词“rake”。使用自然语言(非 bool )搜索时,搜索“the rake”时,同时包含“the”和“rake”的条目将比仅包含“rake”的行具有更高的相关性值。

但是,“rakes”、“raker”和“raked”中没有“rake”一词。全文搜索是单词搜索,“rake”与“rake”不匹配。

您可以在 bool 搜索中使用通配符。搜索“rake*”将返回包含“rake”、“rakes”和“raked”等的行,但您无法搜索“rakes”或“raked”并得到“rake”。

关于MySQL 全文 MATCH AGAINST 不适用于复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36060438/

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