13
лет в электронной коммерции
8 800 3020 886
ГлавнаяБлогУмный поиск на Elasticsearch: как работает и зачем он нужен интернет-магазину

Умный поиск на Elasticsearch: как работает и зачем он нужен интернет-магазину

Покупатель заходит в магазин, вводит запрос в строку поиска и не находит того, что искал. Товар есть в каталоге, но поиск не понял опечатку, не распознал форму слова или просто отработал слишком медленно. Итог предсказуем: человек закрывает вкладку и уходит туда, где искать проще. Для интернет-магазина с каталогом в тысячи и десятки тысяч позиций это не мелочь, а прямая потеря выручки, причём заметить проблему по одним только цифрам конверсии сложно — покупатель просто молча уходит.

Разберёмся, почему так происходит и как эту проблему решает умный поиск на базе Elasticsearch.

Почему стандартный поиск перестаёт справляться с ростом каталога

Встроенный поиск CS-Cart и его аналоги в других платформах хорошо работают на небольших каталогах, но с ростом числа товаров и характеристик начинают буксовать. Поиск идёт напрямую по базе данных, каждый запрос — это тяжёлая операция для базы, а с ростом каталога такие запросы становятся всё медленнее. То же самое происходит с фильтрами: на крупных категориях подсчёт «сколько товаров найдётся» по каждому параметру заметно нагружает MySQL и тормозит страницу.

Кроме нагрузки, у стандартного поиска ограниченная «понятливость». Он не справляется с опечатками, не учитывает разные формы одного слова и обычно ищет только по товарам, не понимая, что покупатель, возможно, ищет бренд, продавца или категорию целиком.

Чем поиск на Elasticsearch отличается от обычного

Elasticsearch — это отдельная поисковая система, построенная специально для быстрого полнотекстового поиска по большим объёмам данных. Вместо того чтобы каждый раз опрашивать основную базу данных магазина, Elasticsearch работает со специально подготовленным индексом — своего рода поисковой картой каталога, оптимизированной именно под запросы покупателей.

Благодаря этому поиск и фильтры перестают нагружать основную базу данных магазина, а результаты появляются практически мгновенно, даже пока покупатель ещё печатает запрос. Для CS-Cart мы реализовали это как модуль по подписке: не нужно поднимать и администрировать Elasticsearch на своём сервере — инфраструктуру, индексы, мониторинг и обновления берёт на себя агентство, а магазин просто подключает модуль в панели администратора.

Как поиск распознаёт опечатки и разные формы слов

Одна из главных причин, по которой покупатели не находят товар, — обычные опечатки и разные формы слова: «стул», «стулья», «стульев». Стандартный поиск часто ищет только точное совпадение, и любое отклонение обнуляет результат.

Elasticsearch решает это несколькими механизмами одновременно:

  • морфология — стеммер (это такой компонент анализатора текста) разбирает слово до основы и находит все его формы («стул», «стулья», «стульев»);
  • fuzzy-поиск — система допускает опечатки отдельно для названия, артикула, описания и характеристик;
  • исправление раскладки — запрос вроде «ghbdtn», набранный по ошибке на английской раскладке, распознаётся и переводится в «привет»;
  • транслитерация — «adidas» и «адидас» воспринимаются как один и тот же запрос;
  • подсказка «возможно, вы имели в виду» — при явной опечатке система предлагает исправленный вариант запроса.

 

Всё это работает без участия покупателя: он просто печатает так, как ему удобно, а система сама подбирает нужные товары.

Умный поиск учитывает бренды, категории и продавцов, а не только товары

Это принципиальное отличие от базового поиска. Помимо самих товаров, отдельно индексируются категории, бренды и продавцы (актуально для маркетплейсов на Multi-Vendor). Это значит, что покупатель, набравший название бренда, увидит не только товары этого бренда, но и сам бренд с логотипом — так же, как и с категориями и продавцами.

 

Выдача при этом группируется по категориям с возможностью «показать ещё» внутри каждой группы, а карточка товара в выпадающем окне поиска сразу содержит цену и кнопку «в корзину».

Поисковая выдача умного поиска в демо-магазине на CS-Cart

Как ускоряются фильтры на страницах каталога

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

Такой подход можно включать точечно: только для поисковой выдачи, блоков товаров или сразу для всего каталога — в зависимости от того, что сильнее всего нагружает конкретный магазин.

 

Что видит покупатель, если по запросу ничего не найдено

Пустая страница с сообщением «ничего не найдено» — частая причина ухода покупателя без покупки. Поиск на Elasticsearch не оставляет человека в тупике: вместо пустого экрана показываются популярные или рекомендованные товары.

 

Это особенно полезно для владельца магазина. В статистике поисковых запросов видно, что покупатели искали, но не находили — и это прямая подсказка, что стоит добавить в ассортимент, синонимы или описание товаров.

Нужно ли самостоятельно администрировать Elasticsearch?

Обычно это главный барьер для внедрения. Elasticsearch считается сложной в настройке и обслуживании системой, которая требует отдельного сервера и специалиста. Мы сняли этот барьер, реализовав модуль для CS-Cart как готовое решение по подписке: инфраструктуру, индексацию, обновления и мониторинг обеспечивает агентство, а магазин просто подключает модуль и работает с ним через привычную панель администратора. При недоступности Elasticsearch модуль автоматически отключается, а сайт продолжает работать на стандартном поиске, пока всё не восстановится.

 

Вопрос–ответ

Подойдёт ли Elasticsearch небольшому магазину с парой сотен товаров?

Да, конечно. Даже при небольшом каталоге Elasticsearch полезен за счёт умных подсказок, исправления опечаток, поиска по брендам и категориям, а также аналитики запросов, которая показывает, что ищут покупатели и чего не хватает в каталоге. Это делает умный поиск инструментом для продаж и развития ассортимента.

Придётся ли переносить сайт на другую платформу?

Нет, модуль устанавливается поверх существующего сайта на CS-Cart и не требует смены платформы или переезда. Он работает как дополнение к текущему каталогу и интегрируется с уже установленными модулями.

Модуль Elasticsearch от Cart-Power учитывает:

Multi-Vendor — продавцы в поиске, фильтрация по компании;

Ultimate — витрины, зоны тарификации, отдельные индексы по языкам;

Master Products — общие товары продавцов;

Product Variations — вариации в индексе;

Warehouses — остатки по складам и направлениям доставки;

Product Reviews — сортировка по рейтингу;

Bestsellers — сортировка по продажам;

Age Verification — поля возрастной верификации в индексе;

Vendor Rating — рейтинг продавца в сортировке;

и многие другие.

Можно ли протестировать поиск не на всех покупателях сразу?

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

Что будет с поиском, если сервер Elasticsearch станет недоступен?

Магазин не останется без поиска: при недоступности Elasticsearch модуль автоматически переключается на стандартный поиск CS-Cart, а администратору приходит уведомление. Как только сервер снова доступен, настройки восстанавливаются без ручного вмешательства.

Поддерживает ли модуль работу с несколькими языками в магазине?

Да, морфологический поиск и стеммер настраиваются отдельно для каждого языка магазина. Также по языкам разделяются синонимы, стоп-слова и индексы, что важно для мультиязычных каталогов.

Заключение

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

Если вы хотите оценить, насколько текущий поиск сдерживает продажи в вашем магазине, и понять, что даст переход на Elasticsearch именно на вашем каталоге, — напишите нам, и мы протестируем модуль на ваших данных.

Получите консультацию специалиста по вашему проекту

  • Содержание
Анастасия Шабаева , редактор Cart-Power
Все статьи автора
Чек-лист будет отправлен на указанный Вами e-mail
Пожалуйста, заполните форму