Готовые решения для 1С-Битрикс
Карточка решения
База знаний по решению:
Умный поиск с исправлением ошибок в запросе и подсказками
Часто задаваемые вопросы:

Правила сортировки (вес)

Правила сортировки это дополнительный функционал. Основной механизм релевантности работает без ручной настройки каких либо правил.

С помощью "Правил сортировки" задаём элементам "Вес". Вес элемента влияет на порядок элементов в поисковой выдаче:
  • Элемент с большим весом всегда считается более релевантным и отображаться выше в списке
  • Вес элемента сквозной - один вне зависимости от поискового запроса
  • После создания правил всегда делайте полную Переиндексацию, а не обновление поискового индекса со страницы правил сортировки

Правила сортировки в административной панели битрикса


Это стандартный функционал 1с-Битрикс. Описание процесса создания правил сортировки вы можете найти в официальной документации битрикс.

Примеры задач которые можно решить с использованием правил сортировки админ-панели:

Задача: Поиск производится по двум инфоблокам Каталог и Бренды. Необходимо в начале выводить найденные Бренды, а потом уже элементы каталога.
Решение: Задайте Брендам вес 1000 и обновите поисковый индекс. При любом запросе, под который попадают бренды они будут отображаться первыми.

Задача: На сайте есть важные товары которые при совпадении нужно показывать самыми первыми.
Решение: Задайте конкретным товарам больший вес, например 2000 и обновите поисковый индекс. При любом запросе, под который попадают эти товары они будут отображены первыми.

Два этих примера крайне просты, но на них хорошо видно механику работы правил сортировки.

Создание правила сортировки для раздела


В третьем параметре по умолчанию можно выбрать только товары. Но задать правило для раздела возможно - нужно вручную в 3 параметр вписать ID раздела с приставкой S. Важно! правило применится к элементу раздела (разделы так же могут участвовать в поиске как самостоятельные элементы), а не к его вложенным товарам.

Пример правила, задающего вес разделу с ID 9:



Программная работа с весом (для разработчиков)


Часто возникают ситуации, когда нужно работать с весом автоматизированно:
- Нужны сложные формулы расчёта веса
- Есть индивидуальные пожелания к сортировке на сайте

В этом случае можно работать с весом программно, через событие https://dev.1c-bitrix.ru/api_help/search/events/beforeindex.php

В событии мы работаем с ключем массива CUSTOM_RANK

AddEventHandler("search", "BeforeIndex", "onIndexWeightHandler", 510); function onIndexWeightHandler($arFields){ if($arFields["MODULE_ID"] == "iblock" && $arFields["TITLE"] && $arFields["ITEM_ID"]){ $arFields["CUSTOM_RANK"] = 0; } return $arFields; }

Чем большую цифру вы укажете в CUSTOM_RANK, тем выше элемент будет в результатах поиска. Этот вес сквозной - соответственно он записывается в индекс и будет действовать вне зависимости от поискового запроса.

Важно!
- Что бы данный способ работал, к элементу не должно применяться правил созданных в интерфейсе (Битрикс считает их более приоритетными).
- Вес сильнее релевантности решения, давая какому то элементу больший вес нужно понимать, что в этом случае элемент с повышенным весом будет в выдаче выше других элементов, даже если их релевантность запросу по мнению решения выше