Sphinx 在查询“select…where match('parameter')”中,我应该为非英语的charset_表使用什么参数?

Sphinx 在查询“select…where match('parameter')”中,我应该为非英语的charset_表使用什么参数?,sphinx,non-ascii-characters,Sphinx,Non Ascii Characters,为了支持中文或CJK,我在sphinx.conf中使用了include'charset_表, 编制索引并启动searchd后,我使用客户端mysql连接它: mysql -h 0 -P 9306 我可以使用以下命令查询和获取所有记录: mysql> select * from excursion_core; 但如果我在匹配的地方追加,我什么也得不到: mysql> select * from excursion_core where match('kike'); Empty s

为了支持中文或CJK,我在sphinx.conf中使用了include'charset_表, 编制索引并启动searchd后,我使用客户端mysql连接它:

mysql -h 0 -P 9306 
我可以使用以下命令查询和获取所有记录:

mysql> select * from excursion_core;
但如果我在匹配的地方追加,我什么也得不到:

mysql> select * from excursion_core where match('kike');
Empty set (0.00 sec)
为了验证这样一个新的charset_表是否会影响这一点,我只对英语使用了旧的sphinx.conf,并运行相同的命令:

mysql> select * from excursion_core where match('kike');
export LANG=en_US.UTF-8
mysql> select * from excursion_core where match('kike');
我可以得到所有与字符串'kike'匹配的记录


我想我应该为CJK的字符集使用不同的字符串,但我不知道应该使用什么字符串?欢迎任何意见

根据我的另一个类似问题:,我找到了答案。运行locale后,我获得了以下信息:

C不适用于UTF-8,因此我执行了以下命令:

mysql> select * from excursion_core where match('kike');
export LANG=en_US.UTF-8
mysql> select * from excursion_core where match('kike');
它更改了区域设置的结果:

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
然后,我可以在运行问题的查询时获得正确的记录: