Умный поиск: опечатки, артикулы, живые подсказки и отчёт по запросам для 1С-Битрикс

Умный поиск: опечатки, артикулы, живые подсказки и отчёт по запросам для 1С-Битрикс (freestylegroup.smartsearch) - решение для Битрикс

Умный поиск: опечатки, артикулы, живые подсказки и отчёт по запросам для 1С-Битрикс

0
5 100 грн.
Умный поиск: опечатки, артикулы, живые подсказки и отчёт по запросам для 1С-Битрикс (freestylegroup.smartsearch) - решение для Битрикс

Штатный поиск Битрикса отвечает «ничего не найдено» чаще, чем кажется владельцу сайта. Покупатель написал «кампрессор» — пусто. Ввёл артикул кусочком, «80TL» вместо «RD-C80TL», — пусто. Забыл переключить раскладку, получилось «lrfkm», — пусто. Написал «девольт» вместо DeWalt — пусто. Каждый такой случай человек читает как «у них этого нет» и уходит. Модуль закрывает ровно эти промахи и показывает владельцу сайта, что именно у него искали и не нашли.

Устанавливается без программиста. Это главное отличие от решений этой ниши: у них установка занимает около часа и требует править шаблоны компонентов поиска. Здесь модуль встраивается событиями ядра — обогащает штатный поисковый индекс, исправляет запрос до того, как его увидит компонент, и подключает подсказки к форме поиска, которая уже стоит на сайте. Работает с любым шаблоном, включая Аспро, Сотбит и «Сайты24». Настройка занимает пять минут, файлы шаблона остаются нетронутыми, и обновление шаблона ничего не ломает.

Что модуль исправляет в запросе. Опечатки — по словарю слов вашего же каталога, а не по общему словарю русского языка: «кампрессор» превращается в «компрессор», потому что такое слово есть в названиях ваших товаров. Раскладку — «lrfkm» читается как «дрель». Транслитерацию в обе стороны — «девольт» находит DeWalt, «makita» находит «Макита». Синонимы и профессиональный жаргон — вы задаёте правила «что ввели => что искать» списком, по одному в строке, и «болгарка» начинает находить угловые шлифмашины. Когда запрос исправлен, на странице появляется строка «Показаны результаты по запросу „компрессор“. Искать „кампрессор“» — человек видит, что произошло, и может вернуться к своему вводу.

Что модуль добавляет в индекс. Артикулы производителя теряются штатной индексацией: она режет строку по дефисам и дробям и прогоняет через морфологию, поэтому «6210» не находит «6210/C3», а «80TL» не находит «RD-C80TL». Модуль дописывает в поисковую запись товара служебные токены: артикул без разделителей, его части, транслитерацию названия и ваши синонимы. Дописывает в момент, когда Битрикс сам записывает индекс, — поэтому токены не пропадают ни после правки товара, ни после обмена с 1С, ни после полной переиндексации. Своего индекса у модуля нет, и пересобирать его после каждой смены настроек не нужно.

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

Что убрать из подсказок. Неактивные товары и товары вне срока активности, товары без цены, без картинки, из служебных разделов, отдельные инфоблоки целиком — всё отключается галочками. Выпадающий список перестаёт предлагать то, что нельзя купить. Важно и честно: страницу результатов рисует штатный поиск Битрикса, и на его выдачу эти галочки не влияют — исключить товар из неё можно только сняв его с публикации или закрыв раздел. Если нужен свой порядок и свои правила на самой странице, в поставке есть компонент страницы результатов.

Когда не нашлось ничего. Штатная страница поиска печатает одну строку — «ничего не найдено», — и на этом разговор с покупателем заканчивается. Модуль добавляет туда же блок помощи: что попробовать, подходящие разделы каталога и запросы, которые ищут другие. Всё это собирается из данных вашего же сайта и не требует ни одной правки шаблона; ваше собственное «ничего не найдено» остаётся на месте, чужую разметку модуль не трогает. Блок выключается галочкой.

Отчёт «что искали и не нашли». Модуль ведёт журнал запросов: текст, число повторов, сколько раз по нему ничего не нашлось. Это список товаров, которые у вас спрашивают, и слов, которых не хватает в синонимах. Из строки отчёта синоним добавляется одной кнопкой. Персональных данных журнал не хранит: только сам запрос и счётчики, без адресов и идентификаторов посетителя.

Переиндексация, которая доходит до конца. После установки нужно один раз переиндексировать каталог, чтобы служебные токены попали в уже готовые записи. Штатная переиндексация на каталогах в десятки тысяч товаров падает по таймауту и начинается заново. Здесь она идёт пачками из браузера с полосой выполнения, счётчиками и кнопкой «Остановить»; прерванную работу можно продолжить с того места, где она встала.

Чего в модуле нет, чтобы не было сюрпризов. Голосового ввода и поиска по картинке. Собственного поискового демона: модуль работает на штатном индексе Битрикса, и на каталогах свыше 300 000 товаров правильнее ставить Manticore — мы скажем об этом честно, а не продадим решение, которое не тянет. Изменение порядка выдачи — приоритет товарам в наличии, с фото, из выбранных разделов — требует одной строки в шаблоне раздела: штатный компонент сортирует по своей релевантности, и повлиять на неё, не заменив его, нельзя.

Модуль написан на API D7: чтение через ORM, AJAX админки — через контроллер с проверкой подписи сессии, метода POST и прав на модуль. Живые подсказки отдаёт отдельный публичный контроллер: он доступен посетителю без авторизации, только читает, ничего не пишет и не меняет, длина запроса, число слов и число строк ответа ограничены. Настройки — настройки на стандартной странице модуля с вкладкой прав доступа. Наружу не ходит совсем — ни телеметрии, ни внешних словарей, ни нейросетей. Создаёт две таблицы: словарь слов каталога и журнал запросов; при удалении спрашивает, оставить ли данные. Требуется PHP 8.0 с mbstring, кодировка UTF-8 и включённая поисковая индексация; версии ядра установщик проверяет сам.

Наш модуль уже успешно используют на наших проектах