为支持中文或CJK,我使用了CJK characters' charset_table
中的sphinx.conf
,
索引和启动searchd
后,我使用客户端mysql
连接它:
mysql -h 0 -P 9306
我可以使用以下命令查询并获取所有记录:
mysql> select * from excursion_core;
但如果我追加where match
我什么都没得到:
mysql> select * from excursion_core where match('kike');
Empty set (0.00 sec)
为了验证这样的新charset_table
是否会对此产生影响,我仅使用旧sphinx.conf
作为英语并运行相同的命令:
mysql> select * from excursion_core where match('kike');
我可以获得与字符串匹配的所有记录' kike'。
我想我应该为CJK的charset使用不同的字符串,但我不知道我应该使用什么字符串?欢迎任何建议!
答案 0 :(得分:0)
根据我的另一个类似问题:How to enable ActiveRecord to support CJK query?,我找到了答案。运行locale
后,我收到了以下信息:
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
" C"不是UTF-8
,所以我执行了命令:
export LANG=en_US.UTF-8
它改变了locale
的结果:
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=
然后,当我运行问题的查询时,我可以获得正确的记录:
mysql> select * from excursion_core where match('kike');