Внедрение Elasticsearch: быстрый и удобный поиск

Внедрение Elasticsearch: быстрый и удобный поиск

Внедрение Elasticsearch: быстрый и удобный поиск

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

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

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

  • по точному совпадению имен (для построения товарной плитки);
  • через текстовое содержимое (полнотекстовой поиск).

Кроме того, этот инструмент используется для замены товарных плиток и фасетных фильтров на разных платформах, где есть ограничения по производительности этих операций. Необходимость этого инструмента появляется в случаях, когда количество вариантов выкладки товаров в товарной плитке становится настолько большим, что размера кэша для всех вариантов становится недостаточно, и клиент сталкивается с серьезным замедлением работы сайта.
Часто Elasticsearch применяется для 1С-Битрикс, если число выборок слишком велико. В качестве документа в систему загружают товар (с необходимыми атрибутами в качестве фильтров), скомпонованный с товарным предложением, имеющим свои атрибуты: цены, скидки по всем регионам и прайс-листам, остатки по всем складам, все значимые промоакции, включая персональные предложения.

Пример

Если необходимо продать товар по промоакции с одного склада и по единой цене для всей России, то для отображения одной плитки требуется один раз закэшировать товарную выборку и перестраивать кэш один раз в 15-30 минут при обновлении остатков.
Если необходимо продать товар с 10 складов по разным ценам и использовать в каждой продаже отдельную промоакцию, то требуется 1000 вариантов кэша одной страницы. Если при этом есть еще пять фасетных фильтров, в каждом из которых по пять значений, то клиент из 25 получившихся вариантов может выбрать произвольное количество, и их общее число в таком случае составит 33,5 млн. В целом, получается 33,5 млрд вариантов одной товарной плитки. Разумеется, в большинстве случаев клиент не использует их все. Но даже если он использует 1% случаев, получится 335 млн вариантов товарной плитки одной категории. И если, к примеру, есть 10 категорий, то выходит 3.35 млрд значений, которые должны быть закэшированы.
Спроектированная база Elasticsearch позволяет хранить данные в более нормализованном виде: для каждого товара создается свой документ, в котором есть информация о товаре, его атрибутах, привязке к веткам категорийного дерева, ценах, скидках, промоакциях и остатках. Если в среднем в одной категории находится 100 товаров, мы получим 100 документов, в каждом из которых будет всего 55 строк (10 складов, 10 цен, 10 промоакций и 25 фильтров и значений). А индекс Elasticsearch позволит делать нужные выборки данных достаточно быстро для всех обозначенных выше вариантов.

Преимущества инструмента

  • Спроектированная база Elasticsearch позволяет хранить данные в более нормализованном виде.
  • Благодаря индексации выборка данных происходит достаточно быстро.
  • Также Elasticsearch позволяет получить связанные фасеты — фасетные фильтры. (Например, в какой-либо товарной категории есть фасеты по брендам и цене. Ввод ограничения в фасете по цене перестраивает список брендов, отображая для пользователя только те бренды, у которых есть товары с заданным ограничением по цене).
  • Программа позволяет осуществлять комплексный полнотекстовой поиск в базе с учетом морфологии языка и контролем опечаток
  • Поиск используется и для интеллектуального ранжирования товаров: выдачи персональных рекомендаций, продвижения новинок и акционных товаров.
  • На backend’е Elasticsearch снимает часть нагрузки с административной части системы и позволяет проще масштабировать решение в пики посещаемости. К уже имеющейся системе можно добавлять новые серверы, и поисковый движок сам распределит нагрузку на них.
  • При отказе какого-либо из серверов данные не будут утеряны, и сама поисковая система продолжит работу без сбоев. На каждое изменение данных в хранилище ведется логирование сразу на нескольких ячейках кластера для повышения отказоустойчивости.

Этапы внедрения и настройки Elasticsearch

  1. Инсталляция и настройка в режиме кластера для обеспечения отказоустойчивости и катастрофоустойчивости (при необходимости).
  2. Настройка процессов разработки и развертывания CI/CD.
  3. Разработка информационной модели.
  4. Разработка процессов импортов данных.
  5. Разработка/настройка механизмов ввода дополнительных справочных данных.
  6. Разработка сервисного слоя использования, включая настройку дополнительного кэширования.
  7. Переделка товарной плитки в категориях, в поиске, карточках товаров, сравнении товаров.
  8. Настройка поисковой индексации (редиректы, синонимы, misstyping, исправление раскладки).
  9. Внедрение.
  10. Сбор статистики и доработки для улучшения организации внутреннего поиска (автоматические редиректы, синонимы, ключевые слова у товаров).

Специалисты

  • Администраторы
  • DevOps
  • Аналитики
  • Разработчики

Клиенты

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

Результаты для бизнеса

  • Быстро работающий сайт с возможностью оперативного обновления данных (1 раз в 15 минут) по товарному предложению, ценам, скидкам, остаткам и промоакциям.
  • Наличие связанных фасетных фильтров, что обеспечивает ранжированием результатов по релевантности.
  • Полнотекстовой поиск с учетом морфологии языка, словоформ, контролем опечаток.
  • С помощью фасетного индекса в Elasticsearch можно быстро получить нужную выборку товаров (при наличии большого объема данных), что невозможно сделать с помощью только 1С-Битрикс из-за особенностей архитектуры.
Спасибо за обращение. Ваша заявка принята.

Оставить заявку

Мы используем cookies для вашего блага. Продолжая просматривать сайт, вы соглашаетесь с этим.

Хорошо