我们销售3.7v,7.4v,11.1v的脂肪电池,电压在描述字段中。应该可以用FT_MIN_WORD_LEN 4对基于字符字段进行全文索引,并使其包含标记"3.7v“等,并在搜索时找到这些标记。我的所有实验表明,在搜索时,索引中缺少这些标记,我怀疑这是因为小数点充当了标记分隔符,并且没有足够长的标记来满足最小长度。
我做错了什么?为什么不匹配3.7v查找我的条目?MySQL全文本理解句号和小数点之间的区别吗?
发布于 2020-06-06 08:44:37
即使FULLTEXT足够聪明,能够识别"."的这两种用法,那么其他5种用法又如何呢?还有其他的标点符号呢?什么时候show "_"是"word“的一部分,什么时候不是?等等。
以下是针对您的情况(以及其他许多情况)的建议。
AGAINST子句中清理要输入的查询。所谓“清理”,我的意思是做几件事中的任何一件来修改数据,以充分利用全文的限制。
在您的一个示例中,我建议将3.7v或3.7 v更改为3_7v。
您可能会发现有些“单词”比min_word_length短;对于它们,您可以填充它们或做一些其他杂乱无章的事情。
我建议你在所有的MySQL工作中使用InnoDB,而不是MyISAM。(注意,这里的设置是innodb_ft_min_token_size,它的默认值是“3”。)
发布于 2020-06-08 05:46:55
我找到了一个解决方案..。
https://dev.mysql.com/doc/refman/8.0/en/full-text-adding-collation.html
MySql文档12.9.7
基本上,有一些xml文件可以控制字符集的行为,我能够更改“”的行为。从标点符号到常规字符的字符。由于该列包含部件号,因此我更改了大多数字符,使它们不是标点符号,创建了一个新的排序规则集,并将其用于我的部件号列。现在可以按要求工作。
https://stackoverflow.com/questions/62168605
复制相似问题