0

Установил сфинкс, проиндексировал, настройки такие:

    source          = objectsSource
    path            = /home/*****/sphinx/
    docinfo         = extern
    mlock           = 0
    morphology      = stem_en, stem_ru, stem_enru, soundex, metaphone
    blend_chars = -,+,U+20
    enable_star=1

    html_strip  = 1

Нужно найти сочетание "z-plaza". В строке пишу: search zplaza Находит.

Подключаюсь mysql клиентом и пишу select * from objectsIndex where match('zplaza');

Не находит! Уже и не знаю, что нужно настроить, помогите, пожалуйста!

2
  • Вы показали запрос "один к одному"? Как бы синтаксис такой: SELECT * FROM comments WHERE MATCH(field_name) AGAINST('zplaza'); // в логическом режиме, например так SELECT * FROM comments WHERE MATCH(field_name) AGAINST('+zplaza' IN BOOLEAN MODE);
    – Deonis
    27 авг 2014 в 18:39
  • sphinxsearch.com/docs/archives/1.10/sphinxql-select.html Такого как у вас нигде нет, попробовал, ругается на синтаксис)
    – Costa
    28 авг 2014 в 6:49

1 ответ 1

1

Скорее всего ваша проблема связана с несоответствием кодировок, искомого и индексируемого. В последниех версиях Sphinx (например 2.2.9), он работает только с utf8.

Советую вам попробовать запустить mysql клиент с явным указанием кодировки:

c:\mysql\bin\mysql -h 127.0.0.1 -P 9306 --default-character-set=cp1251
c:\mysql\bin\mysql -h 127.0.0.1 -P 9306 --default-character-set=utf8

У себя я так и не смог настроить mysql доступ, но через PHP API все работает идеально, для перекодировок пользуюсь:

iconv("UTF-8", "CP1251", $string);
iconv("CP1251", "UTF-8", $string);

соответственно, удачи.

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.