#Признаки неисправности и область применимости
После импорта или изменения товаров поиск на сайте 1С-Битрикс показывает старые результаты, не находит новые записи либо процесс переиндексации прерывается. Инструкция относится к штатному модулю «Поиск», а не к отдельной внешней системе поиска.
#Почему это происходит
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Изменения обошли обработчикиАвтоматическое пополнение индекса не сработало: оно обычно связано с событиями изменения сущностей. | Импорт напрямую в БД или загрузка по FTP | Запустите выборочную переиндексацию. |
| Документы исключены настройкамиИндексация инфоблока, маски файлов и ограничение размера влияют на набор документов. | Нет только определённого инфоблока или файлов | Проверьте источники и настройки модуля. |
| Внешний движок или ошибки выполненияSphinx/OpenSearch, большой файл или тайм-аут на сервере могут помешать завершению. | Счётчик останавливается либо результаты отличаются от встроенного поиска | Изучите конкретную ошибку и выбранный механизм поиска. |
#Пошаговая диагностика и устранение
- Зафиксируйте пример отсутствующей записиОткройте публичный поиск сайта и введите точное уникальное название недавно изменённого элемента. Запишите ссылку элемента, время изменения, найденные старые результаты и URL формы. Так вы отличите не обновившийся индекс от неверного поискового запроса.
- Уточните механизм поискаВ административном разделе откройте «Настройки → Настройки продукта → Настройки модулей → Поиск». Посмотрите выбранный механизм полнотекстового поиска и действующие фильтры. Если установлен внешний поисковый сервер, не изменяйте настройки наугад: сначала проверьте его состояние и соединение.
- Проверьте права индексирования данныхОткройте настройки проблемного информационного блока, изучите разрешения индексации его разделов и элементов, а в модуле «Поиск» — маски включения/исключения и максимальный размер документа. Если отсутствуют только товары одного блока, не запускайте полное перестроение всех сайтов.
- Создайте резервную копию перед полной переиндексациейВыполните штатную резервную копию сайта и БД в соответствии с правилами проекта, запишите текущее время и нагрузку. Пересоздание большого индекса может долго нагружать БД и сервер; делайте его в окно низкой посещаемости.
- Запустите переиндексацию выбранного источникаОткройте «Настройки → Поиск → Переиндексация». Выберите нужный сайт и модуль, оставьте отметку «Переиндексировать только изменённые», если проверяете недавний импорт. Нажмите «Переиндексировать» и наблюдайте за счётчиком; при остановке используйте «Продолжить», если кнопка доступна.
- Разберите зависание, а не повышайте тайм-аут вслепуюЕсли обработка неизменно останавливается на статических документах, выясните размер последнего файла. В настройках модуля «Поиск» проверьте «Максимальный размер индексируемого документа». Если проблемный файл слишком велик, ограничьте его разумным значением только после согласования требований поиска. Сохраните прежнюю настройку.
- Сопоставьте ошибки с журналамиЗапишите время остановки индексации. Изучите журнал ошибок PHP через доступную панель сервера и логи веб-сервера, не публикуя пароли и полный путь к закрытым данным. При 500 или 504 проверьте время выполнения конкретного шага и ошибки БД; не меняйте одновременно память, PHP-FPM и базу.
- Повторите измеримый поисковый запросДождитесь завершения либо зафиксируйте ошибку. Повторите тот же точный поисковый запрос в публичной части и откройте найденную карточку: она должна соответствовать действующей странице, а не старому URL. При незавершённой индексации не объявляйте поиск исправленным.
#Как проверить, что проблема исправлена
Новый элемент появляется по его уникальному названию, изменённая карточка содержит актуальное описание, результат открывает правильный URL; после следующего тестового изменения индекс снова обновляется. Если модуль использует внешний сервер, проверьте это тем же запросом.
#Если проблема осталась
Если переиндексация завершилась, но карточка отсутствует, отдельно проверьте право доступа к элементу, активность/дату публикации и шаблон URL детальной страницы; индексация не делает скрытый элемент публичным. При повторном зависании сохраните время, ошибку PHP и выбранный модуль для разработчика.