gpt4 book ai didi

MySQL 与 utf8_czech_ci 中的 'ch' 匹配

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

我们成功地在查询中使用 MATCH AGAINST 来搜索我们的数据库(主要是捷克语),因此我们使用 utf8_czech_ci 作为默认排序规则。我们已将查询的最小长度设置为 1,并且禁用了所有停用词。

但是,请考虑搜索单词Schedule

当你写下:

  • s:找到时间表
  • sc:没有找到
  • sch:找到时间表

看起来它将 ch 视为单个字符(这在捷克语中是正确的),但当我们进行全文搜索时肯定是不正确的。

有办法避免这种行为吗?

最佳答案

是的,utf8_czech_ci 将 ch 视为位于 hi 之间的单个字母。 Čč 相等,但都位于 c 之后。对于其他带有卡隆的字母也是如此。

This提供各种 utf8 排序规则的排序规则。

我认为您的观察对于该排序规则是正确的。 “schedule”是捷克语单词吗?

要避免这种情况,请为该列选择另一个 utf8 COLLATION,并重建 FULLTEXT 索引。 utf8_binutf8_general_ciutf8_unicode_ci 可能是候选者。您可能需要有两列(和索引)具有相同的文本,但排序规则不同。然后选择该列以控制您要使用的搜索语言。

您正在“比较”字符串吗?如果是这样,排序规则将产生很大的差异 - 捷克语中的“say”<“see”<“sch”,但没有任何(?)其他排序规则。

(utf8mb4 的操作方式与 utf8 相同,至少就本问题而言是如此。)

关于MySQL 与 utf8_czech_ci 中的 'ch' 匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42158072/

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