Администрирование · 11 мин
Как настроить поиск в 1С-Битрикс
Разбираем настройку поиска в 1С-Битрикс: индексация, компоненты, морфология, ранжирование, поиск по каталогу и типичные ошибки с решениями.
Поиск по сайту в 1С-Битрикс работает на связке модуля поиска, поискового индекса и компонентов вывода. Пока индекс не построен или построен некорректно, посетитель не найдёт даже те страницы, которые существуют и опубликованы. Настройка сводится к четырём задачам: включить нужные области индексации, выполнить переиндексацию, разместить компоненты поиска и отладить ранжирование результатов.
В стандартной поставке используется встроенный механизм полнотекстового поиска с поддержкой морфологии русского и английского языков. Для больших каталогов и высоких нагрузок есть альтернатива — интеграция с Elasticsearch или Sphinx, которые снимают нагрузку с базы данных и ускоряют выдачу. Выбор зависит от объёма контента и требований к скорости.
Ниже разобран полный цикл настройки: от проверки модуля до тонкой отладки выдачи и типичных ошибок, из-за которых поиск «не находит очевидное».
Проверка модуля поиска и предварительные требования
Убедитесь, что модуль «Поиск» (search) установлен: перейдите в «Настройки → Настройки продукта → Модули». Если модуля нет в списке, установите его через систему обновлений или повторную установку решения. Без модуля компоненты поиска недоступны.
Проверьте, что на сайте корректно работают инфоблоки и статические страницы, которые должны попадать в выдачу. Поиск индексирует только доступный для чтения контент: если у группы «все пользователи» нет прав на инфоблок, его элементы не попадут в индекс для неавторизованных посетителей.
Также убедитесь, что агенты Битрикса выполняются — часть задач индексации (например, обновление индекса при изменении элемента) работает через агенты. Если агенты на cron не настроены, а хиты редкие, индекс будет обновляться с задержкой.
Настройка параметров индексации
Основные параметры задаются в «Настройки → Настройки продукта → Настройки модулей → Поиск». Здесь определяется, что именно попадёт в индекс и как будет работать морфологический анализ.
Ключевые настройки: маски включения и исключения для статических файлов (например, исключить /bitrix/, /upload/, служебные разделы), максимальный размер индексируемого документа, использование стеммера для русского и английского языков. Включённая морфология позволяет находить «пластиковые окна» по запросу «пластиковое окно».
Для инфоблоков индексация настраивается отдельно: в настройках каждого инфоблока есть вкладка «Поиск» (или поля «Индексировать элементы/разделы для поиска»). Отметьте те инфоблоки и свойства, которые должны участвовать в поиске. Свойства типа «строка» и «текст» индексируются, если у инфоблока включена соответствующая опция.
- 1Откройте настройки модуля «Поиск» и задайте маски исключений для служебных каталогов
- 2Включите морфологию для русского языка
- 3В настройках нужных инфоблоков включите индексацию элементов и разделов
- 4Перейдите в «Настройки → Поиск → Переиндексация» и запустите полную переиндексацию
- 5Дождитесь окончания и проверьте поиск по тестовым запросам
Переиндексация сайта
После изменения настроек индекс нужно перестроить. Откройте «Настройки → Поиск → Переиндексация», выберите полную переиндексацию и запустите процесс. На сайтах с десятками тысяч элементов это может занять заметное время — процесс идёт пошагово, не закрывайте страницу до завершения.
Если переиндексация «зависает» или падает по таймауту, уменьшите шаг индексации в настройках модуля или запустите переиндексацию из командной строки через CLI-скрипт — это надёжнее для больших баз. Также проверьте лимиты PHP: max_execution_time и memory_limit часто являются причиной обрыва.
В дальнейшем полная переиндексация не требуется: при редактировании элементов и страниц индекс обновляется автоматически. Полное перестроение нужно после смены настроек индексации, массовой загрузки контента или импорта каталога.
Размещение компонентов поиска на сайте
За вывод отвечают два стандартных компонента: bitrix:search.form (строка ввода, обычно в шапке сайта) и bitrix:search.page (страница результатов). Форма должна вести на страницу, где размещён компонент результатов, — адрес указывается в параметре PAGE.
В параметрах bitrix:search.page настройте: количество результатов на странице, сортировку (по релевантности или по дате), отображение тегов и подсветку найденных слов. Если нужен поиск только по каталогу, ограничьте выдачу конкретным инфоблоком через параметры arrFILTER.
Для «живого» поиска с подсказками при вводе используется компонент bitrix:search.title — он показывает результаты в выпадающем блоке без перехода на страницу поиска. Это стандартное решение для интернет-магазинов: покупатель видит товары уже при наборе запроса.
<?$APPLICATION->IncludeComponent("bitrix:search.page","",Array("PAGE" => "#SITE_DIR#search/","RESTART" => "Y","CHECK_DATES" => "Y","arrFILTER" => array("iblock_catalog"),"PAGE_RESULT_COUNT" => 20,"DISPLAY_TOP_PAGER" => "Y","DISPLAY_BOTTOM_PAGER" => "Y"));?>Поиск по каталогу товаров и свойствам
Поиск по товарам требует отдельной проверки: названия товаров индексируются по умолчанию, а вот значения свойств (артикул, бренд, характеристики) — только если это включено. Откройте настройки инфоблока каталога, перейдите к списку свойств и для нужных свойств отметьте флаг «Значения свойства участвуют в поиске».
Артикулы часто хранятся в свойствах торговых предложений (SKU), а не в основном товаре. Чтобы покупатель находил товар по артикулу варианта, включите индексацию свойств у инфоблока торговых предложений. После изменения настроек свойств выполните переиндексацию — иначе старые данные останутся без изменений.
Если требуется, чтобы поиск возвращал именно карточки товаров с ценой и кнопкой покупки, настройте шаблон компонента результатов или используйте связку с bitrix:catalog.search, который умеет выводить товары в виде каталожной выдачи.
Частая причина жалоб «поиск не находит товар по артикулу» — артикул записан в свойство торгового предложения, а индексация свойств SKU не включена. Проверьте это в первую очередь, прежде чем менять шаблоны и компоненты.
Ускорение поиска: Elasticsearch и Sphinx
Встроенный поиск хранит индекс в базе данных MySQL, и на больших каталогах (сотни тысяч товаров) выдача начинает тормозить. Битрикс поддерживает подключение внешних поисковых движков — Elasticsearch и Sphinx: модуль поиска передаёт им индексацию и выполнение запросов.
Подключение делается в настройках модуля «Поиск»: выбирается тип поискового движка, указываются адрес и порт сервера Elasticsearch/Sphinx, после чего выполняется полная переиндексация уже во внешний движок. Сам сервер Elasticsearch должен быть установлен и доступен — это задача администратора хостинга.
Сравнение вариантов
Подходит для небольших сайтов и каталогов до нескольких десятков тысяч элементов. Не требует дополнительного ПО, но нагружает базу данных.
Быстрый поиск по большим объёмам, лёгкий по ресурсам. Требует установки и настройки демона на сервере.
Гибкий поиск, нечёткие запросы, масштабирование. Требует выделенной памяти под JVM и более сложного сопровождения.
Ранжирование и качество выдачи
Порядок результатов определяется релевантностью: вес зависит от того, где встретилось слово — в заголовке, в начале текста или в теле страницы. Влиять на выдачу можно через корректную структуру контента: осмысленные заголовки H1/H2, заполненные мета-поля, понятные названия элементов инфоблоков.
Для отдельных страниц можно вручную задавать поисковые фразы через модуль «Поисковые фразы» или механизм тегов. Если важный документ должен показываться первым по конкретному запросу, добавьте соответствующие ключевые слова в его заголовок и анонс — это надёжнее, чем попытки «подкрутить» веса.
Проверяйте выдачу по реальным запросам пользователей: статистика поисковых запросов доступна в модуле поиска и в веб-аналитике. Запросы с нулевым результатом — готовый список доработок: либо контента не хватает, либо он не попал в индекс.
Как проверить результат
Страница находится в первых результатах
Страницы нет в выдаче — проверяйте индексацию и права доступа
Находятся те же документы, что и по исходной форме
Пустой результат — морфология отключена
Возвращается карточка товара
Ничего не найдено — не индексируется свойство или SKU
Результаты появляются без заметной паузы
Выдача занимает секунды — нужен внешний движок или оптимизация
Типичные ошибки и их устранение
Если поиск «не работает» совсем, двигайтесь по цепочке: модуль установлен → переиндексация выполнена без ошибок → контент доступен по правам → компонент результатов размещён и получает параметр запроса. В большинстве случаев проблема находится на одном из этих четырёх шагов.
Отдельный случай — поиск после миграции сайта или обновления Битрикса: индекс может оказаться повреждён или устаревшим. Симптом — частичные результаты или ошибки при поиске. Лечится полной переиндексацией, в тяжёлых случаях — очисткой поискового индекса с последующим перестроением.
Что важно запомнить
Рабочий поиск в Битриксе — это установленный модуль, правильные области индексации, выполненная переиндексация и корректно размещённые компоненты. После любых изменений настроек индексации переиндексация обязательна. Для больших каталогов используйте Elasticsearch или Sphinx.
Частые вопросы
Почему поиск не находит страницу, которая точно есть на сайте?
Чаще всего страница не попала в индекс: проверьте маски исключений в настройках модуля поиска, права доступа к разделу или инфоблоку и дату последней переиндексации. Выполните полную переиндексацию и повторите запрос.
Как сделать поиск только по товарам, без новостей и статей?
В параметрах компонента bitrix:search.page ограничьте поиск нужным инфоблоком через arrFILTER, либо используйте компонент bitrix:catalog.search, который изначально ориентирован на каталог.
Поиск не находит слова в другом падеже. Что включить?
В настройках модуля «Поиск» включите морфологию (стеммер) для русского языка, затем выполните полную переиндексацию — иначе изменения не применятся к уже проиндексированному контенту.
Переиндексация обрывается по таймауту. Как завершить её до конца?
Уменьшите шаг индексации в настройках модуля, увеличьте max_execution_time в PHP или запустите переиндексацию через командную строку сервера — CLI-режим не ограничен временем исполнения веб-запроса.
Когда стоит переходить на Elasticsearch?
Когда каталог исчисляется сотнями тысяч элементов, выдача заметно тормозит, а нагрузка на базу данных растёт. Для небольших сайтов встроенного поиска достаточно, и внешний движок даст только лишнюю сложность сопровождения.
Нужно ли переиндексировать сайт после добавления одного товара?
Нет. При сохранении элемента индекс обновляется автоматически через механизм модуля поиска. Полная переиндексация нужна только после смены настроек индексации, массового импорта или повреждения индекса.