Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
m35

Настройка Sphinx для IPB

Recommended Posts

Писална IBresource, но там по традиции тишина )) Для тех, кому туда не охота ходить в виде одного поста задублирую все сюда.

 

И так значит, решил настроить sphinx, собрал, запустил, вроде работает, но есть НО: не рабоатет с кирилицей "Поиск не дал результатов" и все тут. Соответственно "просмотр новых публикаций" тоже работать перестал.

Сюдауже посылали, прочитал, попробовал... charset_table у меня нигде не прописан в конфиге, конфиг дефотный был, сгенерированный IPB, charset_type изначально поменял scbs на utf8, но пробовал и дефолтное значение - не работает ессно, пробовал коментировать строчку эту вобще - так же не помогает. Если все таки прописать charset_table - какой вариант будет правильным? Или я вобще не о том думаю?

 

PS: Так же интересует вопрос, зачем Sphinx нужна xmlpipe2 ? Без нее нормально работать будет? Пока нет возможности ее поставить.

 

Всем заранее, спасибо!

Share this post


Link to post
Share on other sites

1) Посмотрите в логах запросов (обычно /var/sphinx/log/query.log) как приходят запросы - в правильной ли кодировке.

 

2) charset_type следует заменить на "utf-8". С тире посередине. Проверьте.

 

3) Если 1 и 2 не помогло, значит у вас collation по-умолчанию не utf8, и sphinx неправильно читает строки из БД при построении своих таблиц. В конфиге предусмотрены предварительные запросы к БД при подключении. Нужно добавить в секцию source source ipb_source_config параметры:

              sql_query_pre                  = SET NAMES utf8
             sql_query_pre                  = SET character_set_results=utf8

И переиндексировать все.

 

Однако, лично мне эти параметры на 9.8 не помогли - sphinx их игнорировал. Т.к. у меня все сайты в utf8, то я тогда просто внес это в my.cnf, в секцию mysqld:

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_unicode_ci

Рестарт mysql, полное переиндексирование - и все работает. Заодно и снялись все возможные проблемы от использования IPS-версии форума :)

Share this post


Link to post
Share on other sites

Выполнил все указанные действия.

По порядку:

Проверил конфиг - там на самом деле utf-8 с дефисом.

Добавил в конфиг -

 
sql_query_pre = SET NAMES utf8
sql_query_pre = SET character_set_results=utf8

добавил в my.cnf

init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_unicode_ci

Перезагурзил mysql

Переиндекировал базу

Запустил демона

Смотрю в /var/sphinx/log/query.log

 

А запросы в CP1251 :blink:

Share this post


Link to post
Share on other sites

А у вас форум точно в UTF-8? Как-то это ОЧЕНЬ странно.

Share this post


Link to post
Share on other sites

Точно в utf-8 ...

 

character_set_client	utf8
character_set_connection	utf8
character_set_database	utf8
character_set_results	utf8
character_set_server	utf8
character_set_system	utf8
collation_connection	utf8_general_ci
collation_database	utf8_general_ci
collation_server	utf8_unicode_ci
init_connect	SET NAMES utf8

 

И после внесения изменений в my.cnf все нормально работает кроме поиска по кириллице :(

Edited by m35

Share this post


Link to post
Share on other sites

Ссылку на свой форум дадите?

 

Чтобы в запросе оказался cp1251, нужно иметь фронтэнд в этой кодировке. Других причин не вижу...

Share this post


Link to post
Share on other sites

А у вас сейчас sphinx там включен? Потому что работает поиск нормально :)

Share this post


Link to post
Share on other sites

Нет, естественно чтобы пользователи не долбили, отключаю и включаю только на время экспериментов.

Share this post


Link to post
Share on other sites

Пока эксперименты со сборкой разных версий sphinx успехом не увенчались. И все таки интересен вопрос:

 

PS: Так же интересует вопрос, зачем Sphinx нужна xmlpipe2 ? Без нее нормально работать будет? Пока нет возможности ее поставить.

Share this post


Link to post
Share on other sites

После установки sphinx и проделывания описанных операций с поправками на freebsd при поисковом запросе выдается ошибка:

 

Fatal error: Cannot redeclare class sphinxclient in /usr/home/......./myforum.com/sphinxapi.php on line 378

 

Индексация (/usr/local/bin/indexer --config /path/to/sphinx.conf --all) проходит нормально, сам sphinx запущен ...

В чем может быть дело и в какую сторону копать ?

 

UPD: Нашел, что якобы эта ошибка возникает если дополнительно включено php-расширение (sphinx.so)

Попытался отключить, теперь другая ошибка:

 

Fatal error:  Cannot redeclare class search_engine in /usr/home/......./myforum.com/admin/sources/classes/search/engines/sql.php on line 25

 

На сей счет уже ничего найти не могу

Edited by Demeter

Share this post


Link to post
Share on other sites

И еще...

Самое интересное, что при этом поисковые запросы записываются в query.log

Share this post


Link to post
Share on other sites

Оказалось, что Sphinx каким-то образом конфликтует с memchached, заработало после стопа последнего :(

 

Может знатоки подскажут - есть ли вариант это исправить?

Share this post


Link to post
Share on other sites

ОК, продолжу разговор :), т.к. все молчат, в т.ч. и суппорт IPS, где мой вопрос уже перешел на Tier III - т.е. третий ярус, где очень крутые дяди :)

 

Оказалось, что на абсолютно свежеустановленном тестовом форуме Sphinx работает, соответственно к серверу врядли могут быть претензии

Возникает проблема, если установлены дополнительные скины и (возможно) язык, причем вышеописанная проблема начинает возникать на любом скине в т.ч. и немодифицированном дефолтном

Кроме этого, замечено, что подобные ошибки (c php классами) возникают и на некоторых других приложениях

 

Соответственно, поискав, я обнаружил схожую проблему, описанную здесь: http://community.invisionpower.com/tracker/issue-31779-calendar-error/ - как я понял подобные ошибки возникают после апгрейда с

предыдущей линейки (3.1 и 3.0) из-за каких-то проблем с Set Key в скинах...

 

Но, честно говоря, я так и не понял суть этой проблемы и как ее решить....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...