gpt4 book ai didi

MySQL全文期

转载 作者:行者123 更新时间:2023-11-30 23:06:23 24 4
gpt4 key购买 nike

我有一个产品名称表,全文在使用句点之前效果很好,例如寻找 3.7 电池..我试试

select .. where match(name) against ('+3.7v +battery' in boolean mode)

我看到了用双引号括起句点的建议,即 against ('+\"3.7v\"' in boolean mode)against ('\"3.7v\"' 在 bool 模式下)

都不返回任何结果。我查看了默认的停用词列表 ( https://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html ),但没有看到指定的句点。

我看了http://dev.mysql.com/doc/refman/5.6/en/fulltext-fine-tuning.html并看到 ft_min_word_len 是 3,这应该适合..

有人有什么建议吗?

编辑:/dev.mysql.com/doc/refman/5.6/en/fulltext-natural-language.html 说 FULLTEXT 解析器通过查找特定的分隔符来确定单词的开始和结束位置;例如,“”(空格)、“,”(逗号)和“.” (句点)。

我猜这些定界符与停用词列表不同。有没有办法在不修改源代码的情况下配置这些?不幸的是,我正在使用 InnoDB,它最近才添加了全文功能,并且只能为 5.6 中的 MyISAM 表创建全文解析器插件

最佳答案

where match(name) against ('+battery' in boolean mode)
AND name LIKE '%3.7v%'

这需要您的应用在构建查询时具备一定的智能。

其他变体:

这确保 3.7v 靠近电池:

where match(name) against ('+battery' in boolean mode)
AND name LIKE '%3.7v battery%'

这确保它周围有单词边界:

where match(name) against ('+battery' in boolean mode)
AND name REGEXP '[[:<:]]3.7v[[:>:]]'

关于MySQL全文期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696235/

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