【发布时间】:2015-11-20 19:48:36
【问题描述】:
我知道charset_table 设置允许U+00E9 -> e 将'é' 映射到'e'。但是,如果您使用 U+0065 U+0301 代替 U+00E9 (这是 'é' 的“分解”形式,只是 'e' 后跟一个重音符号),那么 Sphinx 会将 U+0301 视为空格和分手吧。
示例:
mysql> CALL KEYWORDS('Crème brûlée', 'recipes_rt', 1);
+------+-----------+------------+------+------+
| qpos | tokenized | normalized | docs | hits |
+------+-----------+------------+------+------+
| 1 | creme | creme | 3 | 3 |
| 2 | brulee | brulee | 2 | 2 |
+------+-----------+------------+------+------+
2 rows in set (0.00 sec)
mysql> CALL KEYWORDS('Crème brûlée', 'recipes_rt', 1);
+------+-----------+------------+------+------+
| qpos | tokenized | normalized | docs | hits |
+------+-----------+------------+------+------+
| 1 | creme | creme | 3 | 3 |
| 2 | brule | brule | 0 | 0 |
| 3 | e | e | 3 | 3 |
+------+-----------+------------+------+------+
3 rows in set (0.15 sec)
这里需要像 NFKC Unicode 规范化这样的东西,但我在文档中看不到任何提及。
【问题讨论】:
标签: sphinx unicode-normalization