Поиск и каталог

Поиск и фильтры каталога, которые находят товар

Поиск в интернет-магазине работает как продавец в зале. Если на «самсунк телефон» он отвечает «ничего не найдено», покупатель уходит. Я настраиваю Elasticsearch так, чтобы он понимал покупателя и учитывал ваш бизнес: наличие, маржу, сезон.

Признаки, что поиск теряет деньги

  • В логах много запросов с нулём результатов, и никто их не читает.
  • Фильтр отвечает дольше секунды.
  • Товары «нет в наличии» стоят в выдаче выше доступных.
  • «Носки» и «гольфы», «ghbdtn» и «привет», артикулы с пробелами и без: поиск их не связывает.
  • На общий запрос три тысячи результатов без внятного порядка.

Когда Elasticsearch не нужен

Если каталог небольшой и SQL справляется, отдельный поисковый кластер добавит расходов на поддержку. Иногда разумнее взять SaaS-поиск. Сравню варианты честно.

Поиск без Elasticsearch: когда хватает SQL

Что делаю

Разбор поискового лога

Что ищут, что не находят, где уходят.

Mapping и анализаторы для русского языка

Морфология, синонимы, опечатки, раскладка.

Фасеты и агрегации

Отвечают за миллисекунды на десятках тысяч SKU.

Ранжирование

С учётом наличия, маржи и ручных правил мерчандайзера.

Автокомплит и подсказки

Покупатель видит товар до того, как допечатал запрос.

Переиндексация без простоя

Через алиасы, с синхронизацией с Битриксом или 1С.

Как проходит работа

  1. 1

    Лог и 20 запросов

    Смотрю, что ищут и где поиск отвечает плохо.

  2. 2

    Разбор

    Можно отдельно или в составе технического аудита.

  3. 3

    Внедрение

    Отдельным этапом с фиксированной ценой и переиндексацией без простоя.

  4. 4

    Наблюдение

    Сравниваем нулевые выдачи и скорость фильтров до и после.

Сроки и стоимость

Сроки
Разбор входит в аудит, срок внедрения называю после него
Стоимость
Разбор поиска можно добавить к техническому аудиту. Внедрение оцениваю отдельным этапом с фиксированной ценой.

Пример работы

Пример работы

Каталог на 28 000 товаров: Next.js поверх 1С-Битрикс

Рабочий PHP-backend остался на месте: заказы, ценообразование, интеграции. Интерфейс и поиск переехали на Next.js и Elasticsearch, SEO-структура сохранена.

Читать кейс
Можно подключить Elasticsearch к текущему Битриксу без headless?
Да. Поиск и фильтры можно вынести отдельно, витрину при этом не трогать.
Кто будет поддерживать кластер?
Решаем заранее: ваш хостинг, managed-сервис или моё сопровождение. Оставлять кластер без хозяина не стоит.
Ivan Ponamarev

Работу делаю я

Иван Понамарев, senior full-stack инженер, 10+ лет в production. Вы говорите с тем, кто принимает технические решения и пишет критичный код.

Пришлите 20 запросов, на которые ваш поиск отвечает плохо

Посмотрю и скажу, что с этим делать.

Или напишите напрямую: ponamarev.i@icloud.com · Telegram @IvanPin · LinkedIn