Настройка поиска в bitrix при включенной мультисайтовости


Сегодня столкнулся с проблемой некорректной работы поиска на сайте под управлением системы bitrix. До включения мультисайтовости — работала только одна версия и все было в порядке. Однако после добавления второго сайта — во-первых переиндексация поиска перестала работать и начала зависать, а во вторых вскрылись некоторые не совсем очевидные сразу особенности.

Дополнительный сайт лежал внутри корневой директории первого. Папка shared, в которую были перенесены bitrix и upload лежала там же. Изначально переиндексация поиска начала зависать из-за того, что bitrix пытался проиндексировать папку shared. Apache при этом начинал грузить сервер на 100% и громко материться. Решилось это очень просто, достаточно было вписать папку shared в список папок, которые не нужно индексировать. Вписывается это в настройках модуля «поиск» по аналогии с уже добавленными там папками bitrix и upload. Эти папки тоже надо оставлять, ведь симлинки по-прежнему ведут на них.

После этих настроек, переиндексация прошла нормально, но при этом в результатах поиска по основному сайту показывались результаты поиска по дополнительному.

Выяснилось, что компонент поиска был подключен таким образом, что не учитывал идентификатор сайта, на котором нужно искать результаты. Для решения этой проблемы в параметрах подключения компонента на странице (через код скрипта) был добавлен параметр «SITE_ID»=>»s1». Для скрипта второго сайта соответствующий параметр был другим, и также был добавлен. После этого для основного сайта поиск стал работать как задумывалось.

При этом на дополнительном сайте поиск так и не работал. Но, после того как в настройках сайтов был добавлен полный путь к папке, в которой лежит сайт — все встало на свои места. Только в настройки поиска была добавлена еще одна папка для игнорирования — папка, в которой лежал дополнительный сайт.

Что следует делать, чтобы все работало правильно:

Проверить наличие параметра SITE_ID при подключении компонента поиска на всех версиях сайта (если надо чтобы искал сразу по нескольким версиям — можно указывать массив идентификаторов)

  1. Прописать абсолютные пути к папкам сайтов в настройках сайтов в bitrix
  2. В настройках поиска добавить папки для игнорирования: /[dir]/*, /shared/* (dir — это папка в которую установлен дополнительный сайт)
  3. Запустить переиндексацию (можно на любом из сайтов, можно на двух сразу)
  4. PROFIT!

Если у вас что-то не получается — любые вопросы по теме можно задать в комментариях.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *