Поиск Sphinx
Использование Sphinx в качестве поискового механизма позволит значительно увеличить скорость поиска и снизит нагрузку на сервер.
Установка
Подключитесь у серверу по протоколу ssh Подключение по SSH
- В стартовом меню BitrixVM выберете пункт 7. Manage sphinx in the pool. (Если пул не создан, то создайте его)
- Далее выберите 1. Create sphinx instance on the server
- Далее введите хостнейм и имя базы данных
- Согласитесь с переиндексацией сайта
- Поле завершения установки, модуль поиска автоматически будет переключен на sphinx
- В дальнейшем при изменении ассортимента товаров необходимо выполнять переиндексацию.
Словоформы и синонимы
- Добавьте в файл настроек /etc/sphinx/bx/search_index/default.conf между фигурными скобками путь к файлу с словоформам:
wordforms = /etc/sphinx/wordforms.txt
- Далее необходимо создать текстовый файл /etc/sphinx/wordforms.txt с содержимым вида "что на что менять", например:
ролики для касс > чековая лента сиф > cif обеззораживатель > антисептик
- При каждом изменении списка словоформ необходимо очистить кеш и выполнить полную переиндексацию:
systemctl stop searchd find /var/lib/sphinx/ -type f -exec rm -f {} \; systemctl start searchd
Дополнительные настройки
Все дополнительные настройки добавляются отдельной строкой в файл настроек /etc/sphinx/bx/search_index/default.conf между фигурными скобками.
- Приводим латиницу и кириллицу в нижний регистр, Ё заменяем на е (здесь и далее под значениями вида U+410 подразумевается номер символа в таблице Юникода):
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+0435, U+451->U+0435
- Индексация нецелых чисел вместе и раздельно. Например, 1.25 будет индексирован как '1.25', '1' и '25':
blend_chars = +, &, U+2C, U+2E
- Приведение разделителя десятичных знаков в числах к точке. Например 1,75 или 1.75 будут как 1.75:
regexp_filter = (\d+)\,(\d+) => \1.\2
- Транслитерация средствами Sphinx возможна только буква в букву. Например, Ж нельзя заменить на ZH.