Серия Market 2.0.
Фасетный индекс необходим для ускорения поиска товаров и работы всего каталога.
Перед его созданием необходимо проверить чтобы в умном фильтре отображалось не менее одного свойства каталога товаров.
Для создания фасетного индекса перейдите в административную панель и пройдите по следующему пути:
Контент-Инфоблок-Фасетные индексы-Создать все
- Информационный блок (укажите конкретный каталог товаров)
- Шаг ( задайте интервал одного шага создания индекса в секундах, можно использовать значение по умолчанию)
Создание индексов занимает продолжительное время, поэтому рекомендуется проводить индексацию в период минимальной нагрузки на сервер.
Созданные фасетные индексы хранятся в базе данных.

2. Заполнение полей
- Информационный блок (укажите конкретный каталог товаров)
- Шаг ( задайте интервал одного шага создания индекса в секундах, можно использовать значение по умолчанию)
Создание индексов занимает продолжительное время, поэтому рекомендуется проводить индексацию в период минимальной нагрузки на сервер.
Созданные фасетные индексы хранятся в базе данных.

Эта инструкция оказалась полезна?
Как пересоздать фасетный индекс, если много товаров
В данной статье пойдет речь как создавать фасетный индекс, если товаров очень много. Ну прям настолько много, что переиндексация через админку занимает много времени. Сидеть и ждать с открытым браузером неудобно, а если у вас еще и обмен с 1С, в ходе которого периодически могут прилетать новые свойства – нужно также периодически запускать переиндексацию и ждать, ждать.
Лучший вариант для решения такой задачи – это делегировать переиндексацию фасетов самому серверу.
Для реализации данного способа необходимы навыки разработчика
Я не буду объяснять как искать кусок кода в модуле Битрикса, который отвечает за переиндексацию. А просто приведу уже оттесанный временем исходный код скрипта, который нужно будет повесить на крон на стороне сервера.
Вообще я советую вам учиться находить нужные фрагменты кода в модулях Битриксе. Все же, навык разбираться в коде других разработчиков благотворно влияет на наш растущий профессионализм.
Итак, листинг кода:
Инструкция на случай «не знаю что дальше делать»:
- Создаем файл с данным кодом где-нибудь в папке local или в модуле с классами проекта или по старинке создать в /bitrix/php_interface/cron/.
- Заменяем ID инфоблока с товарами.
- Вешаем скрипт на крон через консольную команду crontab -e или, если у вас шаред хостинг, через панель управления.
0 0 */7 * * /usr/bin/php -f /home/bitrix/ext_www/test.web-masterok.ga/bitrix/php_interface/cron/reindex.php
Замените путь к файлу на свой. В моем случае скрипт отрабатывает каждую неделю ровно в полночь. Если нужно по-другому – меняем.
Кстати, советую сервис crontab.guru, с помощью которого можно быстро и правильно настроить время отработки скрипта по расписанию.
Недостатки скрипта
В приведенном мною скрипте есть недочет, он принудительно пересоздает фасеты, что не рационально. Но есть решение…
В дальнейшем в другой статье я добавлю листинг класса, который умеет проверять, есть ли потребность в переиндексации фасетного индекса.
Также, не рекомендую устанавливать выполнение фасетов на то время, когда у вас по расписанию выполняется обработка другого скрипта, например, с созданием бекапа на кроне.
Итоги
Такой вот скрипт поможет вам выполнять переиндексацию фасетов для вашего каталога по расписанию. Данный способ особенно актуален, если на сайте десятки-сотни тысячи товаров и периодически добавляются новые свойства.
Новые записи
- Как авторизоваться в админке без пароля?
- Аудит сайта на Битрикс. Часть 2. Проверка системы
- Как снять бекап базы в Битрикс?
- Подробная статья про функции отладки кода в Битрикс
- Аудит сайта на Битрикс. Часть 1. Зачем нужен аудит сайта?
Фасетные индексы
Страница Фасетные индексы инфоблоков (Контент > Инфоблоки > Фасетные индексы) служит для создания фасетных индексов для инфоблоков, являющимися торговыми каталогами.
Важно! Создание фасетных индексов доступно только для тех каталогов, в которых есть хотя бы одно отображаемое свойство в умном фильтре.
Контекстная панель
Контекстная панель отображается только при наличии торговых каталогов, для которых необходимо создать фасетные индексы.
| Кнопка | Описание |
|---|---|
| Создать все | Переход к форме создания фасетных индексов. Кнопка не отображается, если для всех торговых каталогов фасетные индексы созданы и их пересоздание не требуется. |
| Настроить | Позволяет перейти к диалогу настройки внешнего вида отчетной формы. |
| Excel | Экспортирует данные из отображаемой таблицы в MS Excel. |
Список инфоблоков
- Создать — переход к форме создания фасетных индексов.
Почему поиск по каталогу не находит товары?
1. Часто такая проблема связана с отсутствием фасетного индекса для каталога.
Чтобы его создать, нужно перейти в Контент > Инфоблоки > Фасетные индексы, выбрать нужный каталог и следовать по шагам программы.

В поле «информационный блок» будет находиться каталог, для которого вы создаёте индекс.

2. Другая причина связана, как раз наоборот с тем что фасетный индекс создан. Однако если одновременно используется фасетный индекс и фильтр в поиске, то результат может быть пустым пока не применится хотя бы один из фильтров. Эта проблема исправлена в актуальной версии решения, однако если вы не обновляли шаблон то можно исправить следующим образом — перейдите в папку bitrix/templates/universe_s1/components/bitrix/catalog/catalog.1/bitrix/catalog.search/.default/ откройте файл template.php. В нем добавьте строчку
$arElements[‘PARAMETERS’][‘SHOW_ALL_WO_SECTION’] = «N»;
в месте показанном на скриншоте ниже

Обратите внимание! Хоть это и простое действие, но манипуляции с кодом требуют определенных технических знаний. Если вы не являетесь техническим специалистом, лучше не выполняйте эту рекомендацию, а обратитесь в нашу техническую поддержку, наш специалист вам поможет.

3. Проверьте в параметрах компонента каталога привязку инфоблока. Бывает так, что сам инфоблок выбран правильно, а тип инфоблока нет
Номер инфоблока должен быть выбран в верхнем поле. В таком случае измените тип инфоблока на нужный