gpt4 book ai didi

mysql - 如何在mysql中对版权(©)、商标(™)、注册®等特殊字符进行全文检索?

转载 作者:行者123 更新时间:2023-11-30 22:01:58 25 4
gpt4 key购买 nike

例如,我有一个带有描述、别名字段的 item_table,两者的索引如下:FULLTEXT KEY ft_desc_alias_ngram (description,alias)。

我有一些项目,例如:

Test Item 1 ©
Test Item 2 ®
Test Item 3 ™
Test Item 4 © ® ™

现在我想搜索带有 ©、® 或任何 © ® ™ 的项目。仅搜索 © 我正在使用查询:

SELECT * FROM item_table WHERE match(description, alias) Against('©' IN NATURAL LANGUAGE MODE);

但没有找到结果。

最佳答案

MySQL 内置的全文解析器是为 searching for words 设计的, 不适用于单个字符,默认最小字长设置为 3 ( innodb ) 或 4 ( myisam ) 这些设置意味着没有短于 3 或 4 个词的词被索引,因此不会被全文找到搜索。如果您更改这些限制,则必须重建全文索引 - 但同样,默认的全文解析器并不是真正用于搜索单个字符。此外,您一定不要忘记,自然语言模式搜索 myisam 表不会返回出现在超过 50% 的记录中的词的结果,因为这些词被认为是噪音。

如果你真的想使用全文索引搜索单个字符,那么使用 MySQL 的 ngram parser将标记大小设置为 1,因为您不是在寻找单词,而是在寻找字符。

但是,该索引对于在相同字段中搜索单词没有用。

关于mysql - 如何在mysql中对版权(©)、商标(™)、注册®等特殊字符进行全文检索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088246/

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