Полнотекстовый поиск в SQL Server: как мы сделали поиск по 250 000 товаров

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

Ваш поиск теряет клиентов прямо сейчас

Клиент вводит «дрель аккумуляторная». Ваш каталог на 250 000 товаров выдаёт пустоту. Почему? Он опечатался — написал «акумуляторная». Или поменял слова местами — «аккумуляторная дрель». Всё, клиент ушёл к конкуренту.

Дальше покажу, как мы это чинили на реальном маркетплейсе запчастей спецтехники. Настройка заняла 3 дня. Поиск стал понимать опечатки, словоформы и порядок слов. Вы получите конкретный рецепт на Falcon Space — с кодом процедуры и примерами запросов.

Важно. Плохой поиск убивает конверсию тихо. Клиент не жалуется — он просто уходит. И вы даже не узнаете, что он искал.

Почему LIKE не тянет каталог на 250 000 товаров

Стандартная конструкция WHERE name LIKE '%дрель%' ломается на четырёх вещах:

  • Словоформы. Ищет «дрель», но не находит «дрели», «дрелью», «дрелей».
  • Опечатки. «Акумуляторная» — ноль результатов.
  • Порядок слов. «Аккумуляторная дрель» и «дрель аккумуляторная» — для LIKE это разные запросы.
  • Скорость. Индекс не используется. На больших таблицах — тормоза.

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

Что умеет полнотекстовый поиск в SQL Server

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

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

Шаг 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-специалиста. Окупилось за месяц за счёт роста продаж.

Что делать дальше

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

Инвестиции в поиск окупаются быстрее, чем в рекламу. Начните с полнотекстового индекса и процедуры на CONTAINSTABLE — это база, которая работает на любом каталоге от 10 000 позиций.

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

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

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