Нечеткий поиск: умный поиск с учетом синонимов и обработкой ошибок пользователей
От: Тэга
Решение расширяет базовый функционал стандартного модуля «Поиск» от Битрикс, позволяя эффективно обрабатывать синонимичные значения, опечатки и ошибки в поисковым запросе. Высокая эффективность модуля обеспечивается комбинированной работой различных алгоритмов поиска по сходству (fuzzy string search) и компьютерной лингвистики.

![]() | Модуль включает в себя следующие функциональные блоки
|
|
|
| ||||||
|
|
| ||||||
|
|
Установка и настройка модуля
| Требования к ПО
В требованиях указана протестированная конфигурация. Если хостинг не удовлетворяет указанным требованиям, то напишите в нашу техническую поддержку, мы проверим совместимость модуля конкретно с Вашим ПО. |
Расширение поисковой выборки
Исходный поисковый индекс Bitrix искусственно расширяется: строится множество «ошибочных» слов, а также слов-синонимов (опционально). Таким образом, если пользователь введет поисковый запрос с ошибкой, который ранее попал в расширенный индекс, ему будет автоматически возвращена релевантная выдача. Данный режим не требует изменений стандартных компонентов.
Ниже рассмотрен пример работы модуля с индексируемым словом «платье».

Поиск по сходству
При ошибочном поисковом запросе проиндексированные данные последовательно сравниваются с запрашиваемой строкой, ищутся максимально похожие на основании расстояния Левенштейна. Доступно сравнение на основании стемминга (морфологический основ) и metaphone (фонетического звучания). Для работы в режиме поиска по сходству, модуль использует как стандартный индекс Bitrix, так и собственные таблицы индексации. Данный режим требует замены стандартных компонентов bitrix:catalog.search, bitrix:search.title и bitrix:search.page на одноименные компоненты модуля. | ![]() |
Обработка поисковых запросов пользователей
При включенной опции «Собирать статистику по поисковым фразам» модуля «Поиск» будет производиться автоматический сбор информации по поисковым запросам пользователей. Ознакомиться с собранной статистикой можно на вкладке Настройки > Поиск > Статистика > Список фраз. Модуль «Нечеткий поиск» расширяет данный функционал, выбирая из статистики те запросы, для которых не нашлось ни одного совпадения. Фразы запросов разбиваются на отдельные слова, для слов находятся морфологические основы. При индексации данных на сайте выделенные морфологические основы будут сравниваться с основами индексируемых слов, близкие основы будут добавлены в индекс.
Пример работы Пользователь ввел поисковый запрос с опечаткой «фцтболка». Для данного запроса на сайте не было найдено совпадений, запрос попал специальную таблицу модуля «Нечеткий поиск». На сайте есть проиндексированное слово «футболка». Поскольку основа слова «футболка» близка к основе слова «фцтболка», происходит расширение поискового индекса. Теперь при запросе «фцтболка» пользователю будет возвращены данные, соответствующие поисковому индексу для «футболка».
| Особенности
|
Словарь синонимов
Модуль «Нечеткий поиск» предоставляет удобный функционал для поиска по синонимам. Синонимы добавляются к поисковому индексу в случае, если морфологическая основа какого-либо слова из индекса совпадает с основой слова из таблицы синонимов.
Вместе с модулем поставляется обширный словарь синонимов, который пользователь может добавлять самостоятельно. Список синонимов смотрите в разделе Настройки > Нечеткий поиск > Словарь синонимов.
Пример работы Допустим, что в поисковый индекс попало слово «футболки», при этом в словаре активна запись для слова «футболка» с синонимами «рубашка, майка». Морфологические основы слов «футболки» и «футболка» совпали, поэтому слова «рубашка» и «майка» расширят поисковую выдачу для «футболки». | Особенности
|
Часто задаваемые вопросы
Да, обрабатывает. Данный функционал есть в стандартных компонентах bitrix (параметр «Включить автоопределение раскладки клавиатуры»), и он сохранен в компонентах модуля. Это позволяет, например, обработать ситуацию, когда пользователь ввел в строку поиска «gkfnmt» вместо «платье». Кроме того, в настройках модуля доступен режим сравнения по фонетическому сходству, что позволяет корректно обработать созвучные запросы разных языков, например «platie» вместо «платье». | ![]() |
|
Дата публикации
|
04.06.2020 |
|
Число установок
|
500 - 999 раз |
|
Дата обновления
|
17.05.2026 |
|
Включает в себя
|
Компоненты Модуль |
|
Последняя версия
|
2.1.1 |
|
Адаптивность
|
Да |
|
Поддержка композита
|
Да |
|
Совместимо с Сайты24
|
Нет |
|
Подходящие редакции 1С-Битрикс
|
3373 3380 3381 3382 3383 |
|
Наличие демо-режима
|
Да |
|
Продолжительность демо-периода
|
10 |
- Исправление ошибки пространства имен
- Добавлена интеграция с OpenSearch
- Исправлена ошибка совместимости с новой версией модуля "Поиск"
-
- Добавлена возможность исключения чисел из обработки поиском
- Установлены оптимальные стартовые настройки модуля
- Добавлена функциональность настраиваемой обработки артикулов
- Добавлена настройка исключений при автопереключении раскладки
- Добавлено включение поиска по сходству в зависимости от количества результатов в стандартной выдаче
- Добавлен инструмент очистки поискового индекса
-
- Повышена скорость создания поискового индекса
- Улучшена работа компонентов tega.fuzzysearch:catalog.search и tega.fuzzysearch:search.title
- Улучшение совместимости со sphinx
- Исправление совместимости с модулем Поиск версии 21.0.100
- Исправлены незначительные ошибки ранжирования
- Улучшена обработка запросов из нескольких слов
- Улучшены алгоритмы ранжирования
- Добавлена возможность задания условий, при которых работает транслитерация слов
- Небольшие исправления полнотекстового поиска
- Оптимизация поисковых алгоритмов
- Добавлен инструмент отладки поисковых запросов
- Улучшен поиск по metaphone
- Исправлена ошибка переключения опции "Сравнивать слова через"
- Улучшен поиск по сходству при включении опции "Первая буква обязана совпадать"
- Добавлена возможность транслитерации слов в режиме расширения поисковой выборки
- У компонента catalog.search добавлена возможность сортировки по релевантности
- Исправлены недочеты в шаблонах компонентов
- Добавлены описания параметров на английском языке












