首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sphinx中为Euro (Euro)和Lb (Lb)编制索引

在Sphinx中为Euro (Euro)和Lb (Lb)编制索引
EN

Stack Overflow用户
提问于 2017-04-13 07:12:03
回答 1查看 118关注 0票数 0

这些似乎没有索引,即使我显式地将它们添加到我的charset_table中:

代码语言:javascript
复制
charset_table=...  U+20AC->U+20AC, U+00A3->U+00A3

我甚至试着把它们和美元符号对应起来

代码语言:javascript
复制
U+0024->U+0024, U+20AC->U+0024, U+00A3->U+0024

然而,在每种情况下,它们都是无法识别的,换句话说,MATCH('£1000')不会找到“成本是GB1000”,如果我尝试按照第二个示例映射到$,那么MATCH('$1000)也不会。

但是,如果我进行MySQL搜索,我会得到一些记录,让我相信MySQL正确地编码了UTF8。这意味着Pound SignEuro字符可以正确地存储在MySQL中,但是Sphinx索引无论如何都无法识别它们,即使在我显式地将它们添加到我的charset_table之后也是如此。

config的相关部分:

代码语言:javascript
复制
`min_stemming_len = 1
stopword_step = 0
html_strip  = 1
min_word_len = 1
min_infix_len = 0
index_zones = title,description
charset_type = utf8mb4_unicode_ci
charset_table = 0..9, A..Z->a..z, _, a..z, U+0026->U+0026, U+0027->U+0027, U+002E->U+002E, U+002D->U+002D, U+2014->U+002D#, U+2019->U+0027, U+0024->U+0024, U+20AC->U+0024, U+00A3->U+0024

已确认表/列正在使用utf8mb4_unicode_ci

已确认我可以在欧洲:Where Title like '%€%'上进行mysql搜索

已确认无法找到与SphinxQL相同的记录:where MATCH('€')

EN

回答 1

Stack Overflow用户

发布于 2017-04-21 21:16:39

有三件事你应该检查一下:

First,查看This Question以检查您的MySQL字符编码;

其次是,查看您的Sphinx配置以检查charset_type是否匹配它。

最后,记住,在对charset_typecharset_table进行任何更改后,您需要重新构建索引。

如果以上都没有帮助,你可以在这里发布你的Sphinx Config,这可能会给出关于这个问题的进一步线索。

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

https://stackoverflow.com/questions/43381060

复制
相关文章

相似问题

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