0

我在 MySQL 8.0 上有一个带有字符集 utf8mb4 的全文索引字段

我需要能够搜索“km/h”或“AB”之类的查询,但使用当前的字符集定义,斜杠和破折号被定义为标点符号,因此不被全文索引索引。

查看 MySQL文档,似乎我有这种可能性,(鉴于 utf8 对我来说是一个强烈的要求):

  1. 使用 LDML 语法的基于 UCA 的 Unicode 字符集排序规则
  2. 引入新字符集并重新编译 MySQL

我宁愿避免重新编译,因为它会给维护带来复杂性。

我无法制定出 unicode 文档来创建排序规则。有人可以帮我在 LDML 中定义一个特定的排序规则,以便将破折号和斜杠视为常规字符吗?

4

1 回答 1

0

Suggest you alter the data in the database, plus the data in queries to avoid punctuation.

One way is to blindly change punctuation to _. Another is to change "km/h" to "km_per_h" and "A-B" to "A_dash_B". Either way, you will get much closer to allowing punctuation in FT indexing and searching.

于 2021-10-28T22:53:15.493 回答