Как мы сделали кастомный поиск по каталогу из 250 000 товаров с учётом морфологии и опечаток

Время чтения - 3 мин.
Дата публикации 23.06.2026

У вас маркетплейс с каталогом в 250 000 товаров. Клиент ищет «дрель аккумуляторная», а вы показываете результаты только по точному совпадению «дрель аккумуляторная». Если он опечатается — «дрель акумуляторная» — ничего не найдёт. Если напишет «аккумуляторная дрель» — порядок слов другой — тоже пусто. Клиент уходит к конкуренту, у которого поиск умнее.

Мы решали эту задачу для маркетплейса запчастей спецтехники (250 000 позиций). Настройка поиска заняла 3 дня, и теперь поиск понимает опечатки, словоформы (дрель, дрели, дрелей) и нечувствителен к порядку слов. Расскажу, как сделать такой поиск на Falcon Space.

Почему обычный поиск через LIKE — это плохо

Многие самодельные каталоги используют конструкцию WHERE name LIKE '%дрель%'. Проблемы:

  • Не работает для разных форм слова (найдёт «дрель», но не «дрели»).
  • Не находит при опечатках («акумуляторная»).
  • Зависит от порядка слов.
  • Медленный при большом количестве записей (не использует индекс).

В MS SQL Server есть полнотекстовый поиск (Full-Text Search), который решает эти проблемы. Мы его и использовали.

Что даёт полнотекстовый поиск

  • Поиск по любым формам слова (дрель, дрели, дрелью, дрельный).
  • Игнорирование порядка слов — «дрель аккумуляторная» и «аккумуляторная дрель» дают одинаковый результат.
  • Поиск по опечаткам (расстояние Левенштейна) — если пользователь ввёл «акумуляторная», найдёт «аккумуляторная».
  • Вес ключевых слов — например, слова в названии имеют больший вес, чем в описании.
  • Работа с союзами и предлогами — они игнорируются.
  • Быстрота даже на миллионах записей (индекс).

Как настроить полнотекстовый поиск в Falcon Space

Шаг 1. Включить полнотекстовую индексацию для таблицы товаров. В административном интерфейсе Falcon Space указываете, какие поля индексировать (например, name, description). Система сама создаёт индекс.

Шаг 2. На странице каталога добавить поисковую строку. Обычное поле ввода и кнопка «Найти».

Шаг 3. Написать SQL-процедуру поиска. Используем функцию CONTAINSTABLE:

CREATE PROCEDURE [app].[search_products]
    @keywords nvarchar(100)
AS
BEGIN
    SELECT p.product_id, p.name, p.price, p.image, ft.RANK
    FROM products p
    INNER JOIN CONTAINSTABLE(products, (name, description), @keywords) ft
        ON p.product_id = ft.[KEY]
    ORDER BY ft.RANK DESC;
END

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

Шаг 5. Протестировать. Вводим «дрель акумуляторна» — находит. Вводим «шуруповерт» — тоже находит.

Дополнительные улучшения

Автодополнение (подсказки при вводе). Пока пользователь печатает, под полем появляется список товаров, начинающихся с этих букв. Реализуется через AJAX-запрос к процедуре, возвращающей 5 самых популярных товаров.

Поиск по артикулу (точное совпадение). Если пользователь ввёл цифры или код (например, «ZX-123»), система сначала ищет точное совпадение по артикулу, потом полнотекстовый.

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

Результаты на реальном проекте

Маркетплейс запчастей спецтехники (250 000 товаров):

  • Количество поисковых запросов без результатов сократилось с 25% до 5%.
  • Средняя глубина поиска (количество просмотренных страниц) выросла на 50%.
  • Конверсия из поиска в корзину выросла на 18%.

Затраты на настройку: 3 дня работы SQL-специалиста (60 тыс. руб). Окупилось за 1 месяц за счёт роста продаж.

Сколько стоит настройка поиска для вашего каталога

  • Если делаете сами — 1 день на изучение документации, 1 день на настройку (бесплатно).
  • Если заказываете нам — от 30 до 60 тыс. руб (зависит от числа полей).
  • Автодополнение и подсветка — плюс 20 тыс. руб.

Плохой поиск убивает конверсию на маркетплейсе. Хороший поиск — это как хороший продавец. Инвестиции в поиск окупаются быстрее, чем в рекламу.

Насколько полезной была статья?
Falcon Space, автор блога

Автор статьи - Руслан Раянов

Cоздатель платформы Falcon Space
Запрос расчета стоимости веб-проекта на базе Falcon Space
Если видео Youtube плохо грузится, то попробуйте найти видео в ВК видео на канале Falcon Space
Сайт использует Cookie, Яндекс Метрику. Используя сайт, вы соглашаетесь с правилами сайта. См. Правила конфиденциальности и Правила использования сайта OK