2016-01-26 2 views
0

У меня есть MySQL db в utf8_general_ci.Поиск Sphinx не понимает специальных символов (акценты)

И мой sphinx.conf, как это:

source jobs 
{ 
    type    = mysql 
    sql_sock   = /var/run/mysqld/mysqld.sock 
    sql_query_pre  = SET NAMES utf8 
    ... 
} 

Когда я запрос «système» Я хотел бы сфинкса искать «Systeme» & «Systeme» в БД.

И когда я запрашиваю «systeme», я хотел бы, чтобы sphinx искал «système» & «systeme» тоже.

Теперь он удаляет все символы перед акцентами (включая сами акценты). Таким образом, «система» становится «мной», а «dév» становится «v» ...

PS: Я использую sphinxapi.php, который не должен быть предпочтительным по сравнению с SphinxQL, я знаю, но он должен по-прежнему работают с api. И я использую режим EXTENDED match.

+0

убедитесь, что UTF-8 используется на протяжении всего трубопровода. бессмысленно иметь соединение db и таблицы в utf8, если ваша сторона php использует (скажем) iso8859 для пользовательской стороны. –

+0

Заголовок установлен в файл UTF-8, html. Моя таблица находится в UTF-8 и все cols тоже. Все в UTF-8. Не вижу, где я могу найти возможный след не-UTF-8. – Kalzem

ответ

0

Вам нужно настроить ваш charset_table, чтобы быть в состоянии сделать это

http://sphinxsearch.com/docs/current.html#charsets

Увы нет «волшебной» вариант конфигурации просто волшебно работать со всеми языками текста, нужно настроить charset_table, чтобы иметь дело с langauge (ы), с которыми вы имеете дело.

Хотя это довольно близко: http://sphinxsearch.com/forum/view.html?id=9312 (т.е. ворует тяжелую работу MySQL была сделана с сортировкой и подражает его в charset_table)

Смежные вопросы