Клиент вводит «дрель аккумуляторная». Ваш каталог на 250 000 товаров выдаёт пустоту. Почему? Он опечатался — написал «акумуляторная». Или поменял слова местами — «аккумуляторная дрель». Всё, клиент ушёл к конкуренту.
Дальше покажу, как мы это чинили на реальном маркетплейсе запчастей спецтехники. Настройка заняла 3 дня. Поиск стал понимать опечатки, словоформы и порядок слов. Вы получите конкретный рецепт на Falcon Space — с кодом процедуры и примерами запросов.
Важно. Плохой поиск убивает конверсию тихо. Клиент не жалуется — он просто уходит. И вы даже не узнаете, что он искал.
Стандартная конструкция WHERE name LIKE '%дрель%' ломается на четырёх вещах:
В MS SQL Server есть полнотекстовый поиск (Full-Text Search). Он закрывает все четыре проблемы. Мы его и взяли.
Шаг 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» — сначала точное совпадение по артикулу, потом полнотекстовый. Полезно, когда клиент знает, что ему нужно.
Подсветка найденных слов. Слова из запроса выделяются жирным прямо в описании товара. Клиент сразу видит, почему этот результат в выдаче.
Маркетплейс запчастей спецтехники. Вот что изменилось после настройки:
Настройка заняла 3 дня работы SQL-специалиста. Окупилось за месяц за счёт роста продаж.
Хороший поиск — это как хороший продавец. Он понимает с полуслова, не переспрашивает и ведёт к покупке. Плохой — молча теряет клиентов.
Инвестиции в поиск окупаются быстрее, чем в рекламу. Начните с полнотекстового индекса и процедуры на CONTAINSTABLE — это база, которая работает на любом каталоге от 10 000 позиций.