Найти тему

Linux & Sphinx. Настройка поиска на сайте

Оглавление

А сделай нам быстрый поиск на сайте...

Именно с такими словами подошел сегодня ко мне мой непосредственный. Что-то, говорит, наш текущий поиск очень медленно работает и да и вообще бывает неверные результаты выдает. Ну, вариантов отмазаться нет (поиск действительно тупит периодически), надо делать.

"А помнишь как все начиналось..."

Как обычно, стартуем с анализа ситуации и всех исходных данных.

Вводные данные:

  1. Сайт на Bitrix
  2. Сайт большой (я бы даже сказал практически огромный, одних только товарных предложений более 100 000 позиций)
  3. Поиск стандартный битриксовый (и как он жил до сих пор?!?)
  4. Параметры сервера позволяют немного "похимичить"
  5. Когда то давно слышал про Sphinx

"Все было впервые и вновь..."

Я не шутил в пункте 5, я именно когда то слышал краем уха про Sphinx, но самому пока сталкиваться не приходилось. Не беда, яндекс все знает, а google поможет найти остальное :) Открываем поиск и начинаем искать. Нашел небольшой мануал по установке, сохраню его к себе для памяти, ну и конечно же поделюсь им с вами. Открываем консоль и погнали:

add-apt-repository ppa:builds/sphinxsearch-rel22
apt-get update
apt-get install sphinxsearch
service sphinxsearch start

Далее открываем битрикс и вписываем параметры, и при сохранении он начинает ругаться. Что-то пошло не так... чёрт. Еще раз смотрим в пункты выше...и видим, что по месту где должен находиться поисковой индекс /var/lib/sphinx уже лежит файлик binlog.meta - удаляем его, рестартим сервис

service sphinxsearch restart

И вуаля! Ошибок нет.

Открываем снова битрикс и по новой вписываем конфиги

Настройки Sphinx
Настройки Sphinx

После этого нам Bitrix говорит, что надо переиндексировать поиск. Ну чтоже, не беда, сделаем. Для этого идем в Поиск - Переиндексация, снимаем там галку "Переиндексирвоать только измененные", и стартуем процесс

Переиндексация поиска
Переиндексация поиска

После долгих и мучительных ожиданий мы все таки видим интересующую нас надпись. УРА!

Переиндексация закончена
Переиндексация закончена

Вдогонку

Так как были задеты индексные файлы битрикса, то думаю будет не лишним выполнить оптимизацию и восстановление БД. Да и в принципе это действие никогда не бывает лишним.

Выполняем оптимизацию БД Bitrix
Выполняем оптимизацию БД Bitrix

DONE

Поиск работает. Причем гораздо пошустрее и приятнее чем стандартный.

-6

Всем спасибо за внимание и не забывайте подписываться на мой канал. Если есть что высказать по теме - welcome в комментарии, поддержу беседу, насколько позволит время :)