Как организовать поиск по сайту, когда товаров больше тысячи
На больших каталогах меняется не движок, а организация: структура полей, приоритеты выдачи, фасеты и работа с длинным хвостом запросов.
На каталоге в сто позиций почти любой поиск выглядит прилично: человек всё равно долистает. На тысяче и больше начинают работать другие законы, и решаются они организацией данных, а не сменой движка.
Что меняется с ростом каталога
- Пролистать нельзя. Выдача из ста результатов равна отсутствию ответа.
- Появляется длинный хвост. Половина запросов встречается один-два раза в месяц, и вместе они дают заметную долю трафика.
- Дубли становятся проблемой. Один товар в трёх категориях с разными названиями.
- Ручная правка не масштабируется. Поднимать позиции руками на тысяче карточек невозможно.
Слой 1. Структура данных
База всего остального. Что должно быть у каждой позиции:
- уникальный идентификатор, не меняющийся при правках;
- категория из одного дерева, а не из трёх;
- характеристики отдельными полями с одинаковыми единицами;
- описание назначения;
- цена, наличие, ссылка, изображение.
Одинаковые единицы — не мелочь. «1,5 м» и «150 см» в одном поле ломают и фильтры, и сортировку.
Слой 2. Приоритеты полей
Поиск должен знать, что важнее. Обычный порядок:
- Артикул и код модели — точное совпадение, максимальный вес.
- Название.
- Категория и теги.
- Характеристики.
- Описание.
Без приоритетов товар, у которого нужное слово встречается в описании десять раз, обгонит тот, у которого оно в названии.
Слой 3. Фасеты
На большом каталоге фильтры перестают быть украшением. Правила:
- показывать только те фасеты, что применимы к текущей выдаче;
- писать число товаров у каждого значения;
- прятать значения с нулём;
- не выводить больше семи фасетов сразу, остальные — под «ещё».
Слой 4. Длинный хвост
Редкие запросы нельзя разобрать вручную — их слишком много. Что работает:
- смысловой поиск, который не требует словаря;
- автоматические синонимы из логов: чем люди заменяют ваши слова;
- честный отказ с формой заявки, если ответа нет;
- ежемесячный разбор топ-50 нулевых запросов.
Последний пункт — единственная ручная работа, которая окупается на любом объёме.
Слой 5. Регулярная работа
Большой каталог живёт, и поиск живёт вместе с ним:
- еженедельно: свежие нулевые запросы;
- ежемесячно: топ-запросы и их выдача глазами;
- при добавлении категории: проверка фасетов и приоритетов;
- при сезонной смене ассортимента: пересмотр правил выдачи.
Час в неделю. Меньше не получится, больше обычно не нужно.
Чего делать не надо
- Показывать всё «чтобы был выбор». Двести результатов означают, что человек уйдёт.
- Подмешивать похожее без предупреждения. Разбор — честное «нет» работает лучше похожего товара.
- Строить выдачу только на популярности: новые товары никогда не поднимутся.
Вывод и следующий шаг
Большой каталог требует не другого поиска, а порядка в данных, приоритетов полей и регулярного разбора запросов. Движок при этом может остаться прежним.
Следующий шаг: выгрузите топ-50 запросов с нулевым результатом за месяц и посмотрите, сколько из них закрывается синонимами, а сколько требует смыслового поиска.
Частые вопросы
С какого размера каталога нужен внешний сервис?
Универсального числа нет. Ориентир — момент, когда покупатель не может пролистать категорию целиком.
Сколько результатов показывать на странице?
Столько, сколько человек реально просматривает. Обычно это первый экран плюс немного, остальное — подгрузкой.
Как бороться с дублями товаров?
Свести к одной карточке с вариантами. Три карточки одного товара портят и выдачу, и статистику.
Нужна ли отдельная поисковая база?
На каталоге в несколько тысяч позиций обычно нет. Она нужна при десятках тысяч и высокой нагрузке.
Как часто переиндексировать каталог?
При каждом изменении названий, описаний и характеристик. Цену и наличие можно обновлять отдельно и чаще.
Что делать с сезонными товарами?
Управлять приоритетом выдачи по сезону и снимать с публикации то, чего нет в наличии.