Я хочу использовать real-time индекс sphinx. Ниже конфиг:
index rt_compare
{
type = rt
rt_mem_limit = 32M
charset_type = utf-8
path = /var/lib/sphinx/rt_compare
morphology = stem_enru
rt_field = content
rt_attr_string = content
rt_attr_uint = gid
min_word_len = 3
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinx/
collation_server = utf8_general_ci
}
Делаю запрос из php:
$pdo = new PDO("mysql:host=127.0.0.1;port=9306;charset=UTF8", "", "");
$r = $pdo->exec("SET NAMES 'utf8'");
$r = $pdo->exec("SET CHARACTER_SET_RESULTS=utf8");
$r = $pdo->query("CALL KEYWORDS('машины', 'rt_compare')" );
while( $row = $r->fetch() ){
print_r( $row );
}
Результат:
Наблюдение: в /var/log/sphinx/query.log кладутся данные в windows1251:
Но почему? Вот локали:
Что пробовалось: morphology: stem_enru, lemmatize_ru. charset_table прописывалось, min_stemming_len = 3, dict = keywords в различных сочетаниях. Пробовал послать в windows-1251 - не получилось. Система: Centos 6.
Как же заставить sphinx нормализовывать?