Открыть карточку решения Главная>База знаний (FAQ)>Умный поиск с исправлением ошибок в запросе и подсказками

Все часто задаваемые вопросы по решению: Умный поиск с исправлением ошибок в запросе и подсказками

Видео-инструкции по установке и настройке

Установка данного решения включает в себя размещение и настройку компонентов, поэтому без базовых навыки работы с кодом не обойтись. Процесс установки решения не сложен и занимает в среднем около часа. При необходимости помогу с установкой и отвечу на вопросы - пишите на почту me@arturgolubev.ru


1 часть: Установка решения, настройка параметров модуля, индексация и переиндексация




2 часть: Установка компонентов с сохранением дизайна




3 часть: Установка "с нуля" (с использованием шаблонов решения), рассмотрение компонентов решения и их настроек


Переиндексация поиска

Видео-Инструкция по переиндексации поиска:




Текстовая инструкция по переиндексации поиска:

Важно!
При переиндексации всегда убирайте галочку "Переиндексировать только измененные" иначе большинство элементов не будут переиндексированы.


Для переиндексции поисковых данных выполните следующие действия:

1. В административной панели в левом меню выберите "Настройки" - Открыть пункт "Поиск" и перейти в "Переиндексация"

scr1.png

2. Уберите галочку "Переиндексировать только измененные", "Шаг" установите равным 10 секундам (это время подходит для большинства хостингов) и нажмите "Переиндексировать".

scr2.png

3. В зависимости от количества данных, поиск начнет пошагово переиндексировать данные на сайте. Если поиск зависает, то необходимо в верхней части админ-панели нажать "Настройки", тем самым перейдя в настройки поисковой системы битрикса и указать настройку "" равно 256.

Сохранить и заново выполнить шаги 1 и 2.

scr3.png

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

reindex-soc.png



Свои правила исправлений

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

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

Видео-инструкция по добавлению своих правил исправлений:




Текстовая инструкция по добавлению своих правил исправлений:


Добавить правила просто: перейдите в Настройки решения -> Вкладка Исправления -> Редактировать свои правила исправлений

scr1.png

После нажатия откроется редактирование файла с правилами исправлений.
Рабочей единицей правил исправления является слово.

Для корректной работы правило должно состоять из одного слова (т.е. не содержать пробелов)
Если нужно задать правило для словосочетания, например Шевроле Нива -> Chevrolet Niva, то нужно сделать два правила: отдельное для Шевроле и отдельное для Нива


Заполнять файл с правилами исправлений нужно строго в определенном формате. Символом разделителем является вертикальная полоса |

Формат записи правила:

Правильное_слово||неправильный_ввод_1|неправильный_ввод_2|неправильный_ввод_* ...

Описание формата:
- первым в строке идёт верное написание слово
- разделитель || (две вертикальных черты)
- варианты, которые должны быть исправлены на правильное слово, разделенные символом | (одна вертикальная черта)

Для неправильных вариантов написаний поддерживается маска символом * (звёздочка), обозначающая, что все что начинается с указнного слова должно быть исправлено по правилу


Пример заполненного файла:

scr1a.png






Сортировка результатов поиска

Сортировки поддерживаемые модулем поиск

Довольно часто возникает вопрос:
По каким параметрам строится сортировка результатов во время поиска и как мы можем на неё влиять?

В данной заметке мы постараемся разобраться как устроена система и какие рычаги влияния у нас есть.

Поисковое ядро Битрикса поддерживает две сортировки:
- По дате
- По релевантности

Разберем типы сортировок чуть подробнее:

1. Сортировка по дате

Сортировка по дате зависит от даты добавления/обновления элемента и чем ближе эти даты к текущей - тем выше элемент будет в результатах поиска.

2. Сортировка по релевантности

Сортировка по релевантности основана на оценке степени соотвествия элемента поисковому запросу. Чем выше степень соответствия - тем выше элемент в результатах поиска.

Сортировка по релевантности обычно работает более точно, т.к. позволяет выдавать более соответствующие запросу результаты.

Так же, дополнительным бонусом сортировки по релевантности является возможность создания правил сортировки.
Важное дополнение:
В большинстве случаев для реализации страницы поиска используют связку компонентов search.page + catalog.section. При использовании такой связки сортировка вывода карточек настраивается в параметрах компонента catalog.section.

При необходимости можно сохранить порядок сортировки из компонента search.page, указав в параметрах catalog.section (способ работает с модулем iblock версии выше 18.6.900):

"ELEMENT_SORT_FIELD" => "ID",
"ELEMENT_SORT_ORDER" => array_values($arElements),

Правила сортировки

С помощью "Правил сортировки" мы можем влиять на порядок выдачи элементов в поиске (при использовании сортировки по релевантности).

Правила сортировки позволяют задать "вес" элементам. Элемент с большим весом более релевантный, чем элемент с меньшим весом. Чем больше значение веса, тем выше в списке будет отображен элемент.

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


Пара примеров применения сортировки результатов поиска


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


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


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



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


На первый взгляд правила сортировки для раздела задать нельзя, в третьем параметре просто нет возможности выбрать раздел - при нажатии выпадает форма с выбором элементов. Но! Такая возможность всё же присутствует. Вы можете вместо ID элемента вписать ID раздела с приставкой S. И правило будет работать для указанного раздела.

Пример правила, задающего больший вес разделу с ID 9 для последующего его отображения вверху списка:



Область поиска

Изначально, ядро битрикса поддерживает интерактивный поиск только по названиям элементов инфоблоков. В большинстве случаев это является возможным ограничивающим фактором, т.к. подгонять название товаров под поисковые фразы и отображать его в таком виде не лучший вариант.


Поиск по тегам

Для поиска по тегам в настройках модуля должна быть активна галочка "Интерактивный поиск ищет по тегам". После изменения настроек модуля необходимо выполнить переиндексацию поиска.

Пример настройки поиска по тегам


1. Для примера мы возьмём товар с названием "Штаны Полосатый рейс"

currency.jpg

2. Предположим, что мы хотим находить этот товар по словам "Брюки" и "Юбка". Для этого переходим в изменение товара, на стандартную вкладку "СЕО" и заполняем поле "Теги". Сохраняем товар

currency.jpg

3. Переходим на сайт и проверем работу интерактивного поиска:

currency.jpg currency.jpg


Все работает. Настройка очень проста и позволяет расширить поиск так, как Вы это видите!


Поиск по свойствам

Для поиска по свойствам в настройках модуля должна быть активна галочка "Интерактивный поиск ищет по свойствам". После изменения настроек модуля необходимо выполнить переиндексацию поиска.

В данный момент поиск по свойствам работает для типов "Строка", "Список", "Число", "Справочник" (название элемента справочника)

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


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

infoblock_properties.png


Далее ищем нужное свойство, в нашем случае это материал и нажимаем кнопку изменить

scr2.png


В открывшемся окне установите галочку "

in_search.png


Сохраняем окно. Сохраняем настройки инфоблока.

2. Для примера мы возьмём товар с названием "Спортивный Костюм Огонь в Ночи", у которого в свойстве "Материал" указан "Шелк / Дермантин"

tovar.png


3.Проверем работу интерактивного поиска

test1.png test2.png


Готово!


Поиск по статическим страницам

Данная возможность используется довольно редко и нужна не всем, но поиск умеет искать по статическим страницам. Поиск по статическим страницам поддерживается и компонентом интерактивного поиска, и компонентом страницы поиска.



Что необходимо для поиска по статическим страницам:

1. В настройках компонентов поиска, в области поиска должен быть отмечен поиск по стратическим страницам

oblast-poiska.png


2. У статических страниц должен быть установлен заголовок функцией: $APPLICATION->SetTitle("Тестовый заголовок"); именно по содержимому этого заголовка и будет происходить поиск

3. Ваш шаблон компонента страницы поиска должен поддерживать вывод таких страниц (данная пометка в касается сайтов, где страница поиска ориентирована только на вывод товаров каталога в виде карточек)

Интеграция с популярными решениями

В данном подразделе буду публиковать подсказки по интеграции с популярными решениями Marketplace

Аспро: Некст, Максимум, Оптимус

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

При установке поиска в Aspro.Next необходимо заменить поиск в трех файлах:

1. Копируем текущие шаблоны поиска

а) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.page в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.page

б) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.title в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.title

в) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog.search/main/bitrix/search.page в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog.search/main/arturgolubev/search.page


2. Устанавливаем arturgolubev:search.title в файлы

/include/footer/site-search.php
/include/top_page/search.title.catalog.php

3. Устанавливаем arturgolubev:search.page в файл

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog.search/main/include_search_page.php

#АЙДИ_ШАБЛОНА# - заменить на айди вашего шаблона

Digital Web: Deluxe

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

В отличии от других решений, DW Deluxe использует свои компоненты для поиска, поэтому установка на deluxe более сложная, чем на другие решения.


1 Шаг. Базовая настройка


Начинать рекомендую с создания тестовой странички. Разместите и настройте на ней компоненты arturgolubev:search.title и arturgolubev.search.page, что бы в дальнейшем можно было их взять и вставить в нужные места


2 Шаг. Установка интерактивного поиска


Определяем где размещен интерактивный поиск. Обычно он лежит в одном из перечисленных ниже файлов

/sect_searchLine.php /sect_searchLine2.php /sect_searchLine3.php /sect_searchLine4.php


Вместо стандартного компонента вставляем компонент интерактивного поиска, настроенный на нашей тестовой странице.

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

Для кастомизации скопируйте шаблон строки поиска из /bitrix/components/arturgolubev/search.title/templates/.default  в /bitrix/templates/#ID_ВАШЕГО_ШАБЛОНА#/components/arturgolubev/search.title/custom

Примените скопированный шаблон к компоненту.

Отредактируйте код шаблона (приведите код файла /template.php в плане html к виду стандартной поисковой строки deluxe), так же не забудьте разместить стили от стандартного компонента поиска deluxe в style.css

Если всё сделано правильно, по итогу вы сможете получить такой вид

title-end.png



3 Шаг. Установка поисковой страницы


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

Обычно вызов компонента расположен в папке /search/ и отображается стандартный встроенный шаблон.

Для установки нам необходимо скопировать текущий отображаемый шаблон из папки /bitrix/components/dresscode/search/templates/.default в /bitrix/templates/#ID_ВАШЕГО_ШАБЛОНА#/components/dresscode/search/custom и установить в настройках компонента вывод нового скопированного шаблона (с названием которое мы указали как custom)

Далее редактируем шаблон компонента который мы скопировали /bitrix/templates/#ID_ВАШЕГО_ШАБЛОНА#/components/dresscode/search/custom/template.php

Для простоты установки пойдем на хитрость - установим компонент в скрытый блок и перезапишем рабочие переменные на массив возвращаемых нашим компонентом айди:


dress_spage_huk.png

После установки поисковой страницы таким способом внешний вид и функционал сохраняются. Дополнительные действия не требуются

Скачать файл с кодом из данного шага можно по ссылке - скачать. Так же есть шаблоны для интерактивного поиска - с сохраненным видом формы ввода делюкса или с выпадающим списком карточками - их можно получить по запросу в тех. поддержку решения.


Altop: Электросила, Электросила Next

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

При установке поиска в ALTOP ЭЛЕКТРОСИЛА необходимо заменить поиск в двух файлах:

1. Копируем текущие шаблоны поиска

а) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog/.default/bitrix/search.page/ в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.page

б) Копируем /bitrix/components/altop/search.title/templates в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.title


2. Устанавливаем arturgolubev:search.title в файлы

/include/header_search.php

3. Устанавливаем arturgolubev:search.page в файл

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog/.default/bitrix/catalog.search/.default/template.php

#АЙДИ_ШАБЛОНА# - заменить на айди вашего шаблона

Некстайп: Магнит

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

При установке поиска в Некстайп: Магнит необходимо заменить поиск в трех файлах:

1. Копируем текущие шаблоны поиска

а) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.page в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.page

б) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.title в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.title


2. Устанавливаем arturgolubev:search.title в файлы

/include/search_line.php

3. Устанавливаем arturgolubev:search.page в файл

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog.search/main/template.php
(Путь выше указан до стандартного шаблона catalog.search, проверить какой шаблон catalog.search используется можно в файле /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog/main/search.php)

#АЙДИ_ШАБЛОНА# - заменить на айди вашего шаблона

Битроник 2

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

При установке поиска в решение Битроник 2 необходимо заменить поиск в двух файлах:

1. Копируем текущие шаблоны поиска

а) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.page в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.page

б) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.title в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.title


2. Устанавливаем arturgolubev:search.title в файлы

/include_areas/header/search.php

3. Устанавливаем arturgolubev:search.page в файл

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog/.default/search.php

#АЙДИ_ШАБЛОНА# - заменить на айди вашего шаблона

Intec

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

При установке поиска в Intec необходимо заменить поиск в трех файлах:

1. Копируем текущие шаблоны поиска

а) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.page в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.page

б) Копируем /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/search.title в /bitrix/templates/#АЙДИ_ШАБЛОНА#/components/arturgolubev/search.title



2. Устанавливаем arturgolubev:search.title в файлы

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/intec.universe/main.header/template.1/parts/search/input.1.php
/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/intec.universe/main.header/template.1/parts/search/popup.1.php

3. Устанавливаем arturgolubev:search.page в файл

/bitrix/templates/#АЙДИ_ШАБЛОНА#/components/bitrix/catalog/catalog.1/bitrix/catalog.search/.default/template.php

#АЙДИ_ШАБЛОНА# - заменить на айди вашего шаблона

Концепт: Феникс

Решение Феникс использует свои разработки в плане поиска, не совместимые в плане шаблонов со стандартными компонентами битрикса и с отличающейся концепцией.

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

Результаты интерактивного поиска немного отличаются от страницы поиска

Периодически в техническую поддержку приходит вопрос: "Результаты интерактивного поиска отличаются от результатов на странице поиска. Что делать?"

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

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

Но если необходимо, можно сделать результаты максимально похожими!

Как сделать результаты интерактивного поиска и страницы поиска максимально похожими:

  1. Включить расширенный режим работы поиска (в настройках решения)
  2. Отключить поиск по описаниям на поисковой странице (в настройках решения)
  3. Выключить морфологию в настройках модуля Поиск Битрикса
  4. Установить в обоих компонентах сортировку "По релевантности"

Для разработчиков

Исключение из поиска определенным элементов

Часто возникают вопросы: "Как исключить из поиска товары определенной группы?" или "Как исключить из поиска товары не в наличии?"

Проблема решается довольно просто, добавлением обработчика индексации для стандартного модуля поиск - https://dev.1c-bitrix.ru/api_help/search/events/beforeindex.php

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


Пример обработчика, который можно доработать под свою задачу:

<? AddEventHandler("search", "BeforeIndex", "BeforeIndexHandler", 10); function BeforeIndexHandler($arFields) { $clearIndex = 0; if($arFields["MODULE_ID"] == 'iblock' && $arFields["TITLE"] != '' && IntVal($arFields["ITEM_ID"])) { if(CModule::IncludeModule("iblock")){ $res = CIBlockElement::GetList(Array(), array("ID"=>$arFields["ITEM_ID"]), false, Array("nPageSize"=>1), array("ID", "NAME", "IBLOCK_SECTION_ID")); while($fields = $res->Fetch()) { if($fields["IBLOCK_SECTION_ID"]){ $nav = CIBlockSection::GetNavChain(false, $fields["IBLOCK_SECTION_ID"], array("ID", "NAME", "ACTIVE")); while($flds = $nav->Fetch()){ if($flds["ACTIVE"] == 'N'){ $clearIndex = 1; } } } } } } if($clearIndex) { $arFields["TITLE"] = ''; $arFields["BODY"] = ''; $arFields["TAGS"] = ''; } return $arFields; } ?>

* Обработчик из примера проверяет поле активности у разделов, в которые вложен товар, и исключает его из поиска, если один из разделов неактивен.


Поиск по ID элемента

После размещения обработчика необходимо выполнить полную переиндексацию поиска

Начиная с версии 3.3.1 поиск по айди можно включить через настройки решения
Для поиска по ID элемента инфоблока, нужно добавить значения ID к поисковому индексу элементов. Это можно сделать разместив в init.php такой обработчик события BeforeIndex:

AddEventHandler("search", "BeforeIndex", "agSearchIndexAddId", 550); function agSearchIndexAddId($arFields) { if($arFields["MODULE_ID"] == 'iblock' && $arFields["TITLE"]){ if($arFields["ITEM_ID"] && substr($arFields["ITEM_ID"], 0, 1) != "S"){ $arFields["TITLE"] .= ' '.$arFields["ITEM_ID"]; } } return $arFields; }

Если используется local и существует /local/php_interface/init.php, то нужно обработчик размещать в этом файле. Если нет, то в /bitrix/php_interface/init.php

Настраиваемые фильтры

Решение умного поиска поддерживает дополнительные фильтры и в search.page и в search.title.

При создании фильтра особое внимание обратите формату - у поиска другой формат фильтра, отличающийся от фильтров для инфоблоков!

Подробная инструкция по настройке фильтров для поиска уже есть в документации битрикса - читать в первоисточнике


Фильтры заложенные "из коробки":


1. Фильтр по доступности товара (На основе стандартного поля CATALOG_AVAILABLE)
Позволяет убрать их поиска недоступные товары

global $arTitleSearchFilter; $arTitleSearchFilter = array("PARAMS" => array("catalog_available"=>'Y'));

Увеличение скорости работы поиска

В данной главе опишу параметры на которые нужно обратить внимание для более быстрой и качественной работы умного поиска

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

Настройки связанные с поиском и индексом:


1. Лишние данные в поисковом индексе

Если поиск на вашем сайте ищет только по каталогу, то логично, что не имеет смысла загружать поисковый индекс ненужными данными.

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

smartsearch_iblock.png


Так же откройте настройки модуля "Поиск" (Кнопка "Настройки" в верхней части админ панели, далее в списке выберите "Поиск"), в маске исключения добавьте ;/*; - это отключит индексацию статических файлов

smartsearch_mask.png

2. Ограничение поискового запроса для страницы поиска и опция быстрого поиска

Так же одной из частых проблем является некорректная настройка ограничителя поискового запроса. Проверить его можно в настройках модуля "Поиск" (Кнопка "Настройки" в верхней части админ панели, далее в списке выберите "Поиск"). И перейдя на вкладку поиск.

Рекомендую устанавливать опцию "Максимальное количество документов в результатах поиска" в интервале от 200 до 500 элементов. Так же на этой вкладке проверяйте наличии опции "Использовать быстрый поиск", её можно ставить не боясь за ранжирование.

smartsearch_search_settings.png


3. Упрощенный режим работы умного поиска

В решении на случай слабых хостингов/серверов есть настройка "Режима работы" - она позволяет включить облегченный режим работы - "Базовый". При переходе на базовый режим работы решение будет работать быстрее

4. Отключения поиска по описаниям

В настройках решения можно отключить поиск по описаниям, установив галочку "Отключить поиск по описаниям на поисковой странице". В большинстве случаев поиск по описаниям очень малорелевантен, поэтому рекомендую устанавливать эту опцию всегда.

Оптимизации битрикса / северная часть:

Так же не стоит забывать о настройках системы и мощности хостинга. Если настройки системы не оптимальные либо мощности хостинга не хватает на выполнение поисковых запросов достаточно быстро - никакой калибровкой поисковых механизмов это не поправить.

У битрикса есть 3 встроенных монитора проверки настроек и ресурсов. Все они должны проходить проверку без ошибок (это основа всех основ, которая положительно влияет на весь сайт, а не только на поисковый модуль)

1. Проверка системы - В левом меню нажимаем "Настройки" - "Инструменты" - "Проверка системы". После прохождения ошибок быть не должно

2. Панель производительности - В левом меню нажимаем "Настройки" - "Производительность" - "Панель производительности". Оценка должна быть не ниже эталонной, если у вас сайт с большим количеством (более 25т) - производительность должна соответствовать. На вкладке Битрикс должно быть "Оптимально"

3. Сервер БД - В левом меню нажимаем "Настройки" - "Производительность" - "Сервер БД". Красных значений быть не должно




Статья будет дополняться по мере появления новой информации и новых возможностей.


Дополнительные полезные функции

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


1. Добавить в массив ID найденных товаров все ID торговых предложений (при наличии).

$arProductAndSkuIDs = \Arturgolubev\Smartsearch\Tools::dwAddSkuId($arProductIDs);

Данная функция будет полезна при интеграции с решение DW Deluxe, т.к. для вывода карточек с предложениями по фильтру, необходимо указывать не только ID основных товаров, но и передать все айди их предложений.


2. Получить массив ID основных товаров, по смешанному массиву Товары + торговые предложения

$arProductIDs = CArturgolubevSmartsearch::getProductIdByMixed($arProductAndSkuIDs);

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

3. Переиндексировать конкретный элемент инфоблока

CIBlockElement::UpdateSearch($ID, true);

Функция будет полезна, если вы изменили элемент по api без базовой автопереиндексации, например через CIBlockElement::SetPropertyValuesEx и нужно принудительно переиндексировать элемент