首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sphinx可以处理unicode规范化表单吗?

Sphinx可以处理unicode规范化表单吗?
EN

Stack Overflow用户
提问于 2015-11-20 02:08:20
回答 1查看 158关注 0票数 1

我知道允许U+00E9 -> echarset_table设置,它将'é‘映射到'e’。然而,如果你使用的不是U+00E9,而是U+0065 U+0301 (这是“é”的“分解”形式,只是“e”后面跟着一个尖锐的重音),那么Sphinx会将U+0301视为空格,并将单词拆分。

示例:

代码语言:javascript
复制
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规范化,但我在文档中看不到任何提到这一点。

EN

回答 1

Stack Overflow用户

发布于 2015-11-20 19:48:37

不确定如何‘可伸缩’地处理它(即所有的表单),但个体可能是用regexp_filter完成的

http://sphinxsearch.com/docs/current/conf-regexp-filter.html

代码语言:javascript
复制
regexp_filter = \%u0065\%u0301 => e

尽管如此,也许只需将U+0301 (和其他'combining‘字符)添加到ignore_charshttp://sphinxsearch.com/docs/current/conf-ignore-chars.html

它们消失了,留下了“无重音”的char (e)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33811296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档