我们有使用此查询的网站:
SELECT did, kid FROM top_keywords WHERE MATCH('@keyword "^EXAMPLE KEYWORD$"') LIMIT 0,
100;
它在99%的时间内效果很好,但是使用某些编码它不起作用。例如:
SELECT did, kid FROM top_keywords WHERE MATCH('@keyword "^εργον$"') LIMIT 0, 100;
产生错误:
ERROR 1064(42000):index top_keywords:语法错误,意外'$',期待 'εργον$''附近的TOK_KEYWORD或TOK_INT
我的狮身人面像版本是2.0.6。
我唯一的想法是与conf-charset-type有关。
答案 0 :(得分:1)
我尝试将您的单词εργον
复制/粘贴到其中
http://software.hixie.ch/utilities/cgi/unicode-decoder/utf8-decoder
它似乎完全由非ascii UTF8字符组成。 (即代码都是255 +)
所以,所有这些字母都需要在charset_table
才能发挥作用。
我猜他们不在你身上charset_table
(只是设置charset_type=utf8
是不够的),在这种情况下他们被完全剥离,所以查询变为
SELECT did, kid FROM top_keywords WHERE MATCH('@keyword "^ $"') LIMIT 0, 100;
...因为这些字母都被视为分隔符,这显然会使您的查询无效。
不幸的是,我不能给你任何关于charset_table的国际支持的好参考(不知道任何!),但也许从wiki开始http://sphinxsearch.com/wiki/doku.php?do=search&id=charset_table