我们出售3.7v,7.4v,11.1v的脂电池,电压在说明字段中。 FULLTEXT可以索引FT_MIN_WORD_LEN为4的基于字符的字段,并使其包含标记“ 3.7v”等,并且在搜索时可以找到这些标记。我所有的实验都表明,在搜索这些标记时,索引中缺少这些标记,我怀疑这是因为小数点充当了标记分隔符,并且没有任何标记的长度足以满足最小长度。
我在做什么错?为什么无法与3.7v匹配找到我的条目? MySQL FULLTEXT是否理解句号和小数点之间的区别?
答案 0 :(得分:0)
即使FULLTEXT足够聪明,可以识别"."
的这两种用法,其他5种用法又如何呢?那其他标点符号呢? show "_"
何时成为“单词”的一部分,何时不成为“ word”的一部分?等等等等
以下是您(以及许多其他情况)的建议。
AGAINST
子句中。通过“清理”,我的意思是做几件事来修改数据以在FULLTEXT的限制下充分发挥作用。
在您的一个示例中,建议将3.7v
或3.7 v
更改为3_7v
。
您可能会发现某些“单词”比min_word_length短;对于他们,您可以垫上他们或做一些其他的事情。
我建议您对所有MySQL工作都使用InnoDB,而不是MyISAM。 (请注意,那里的设置为innodb_ft_min_token_size
,默认为“ 3”。)
答案 1 :(得分:0)
我在这里找到了解决方法...
https://dev.mysql.com/doc/refman/8.0/en/full-text-adding-collation.html
MySql文档12.9.7
基本上,有用于控制字符集行为的xml文件,并且我能够更改“。”的行为。从标点符号到常规字符的字符。鉴于该列包含零件号,因此我更改了大多数字符,因此它们不会标点创建新的排序规则集,并将其用于我的零件号列。现在可以按要求工作。