Как настроить Elasticsearch в Magento 2

Опубликовано: 2022-12-20

Оглавление

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

Что такое Elasticsearch в Magento 2?

эластичный поиск-логотип

Согласно Elasticsearch BV, Elasticsearch — это распределенная, бесплатная и открытая поисковая и аналитическая система для всех типов данных, включая текстовые, числовые, геопространственные, структурированные и неструктурированные.

Elasticsearch, впервые выпущенный в 2010 году, основан на библиотеке поиска и индексирования на основе Java под названием Apache Lucene. Это полнотекстовая поисковая система, которая предлагает связанные ключевые слова и показывает полные запросы, сравнивая слова в документе или базе данных. Кроме того, его распределенная модель и открытость ко всем типам данных упрощают поиск и масштабирование.

Благодаря этим возможностям Elasticsearch используется для поиска приложений; Поиск по сайту; Поиск предприятия; Логирование и лог-аналитика; Мониторинг производительности приложений; Анализ и визуализация геопространственных данных; Бизнес-аналитика и др.

Начиная с Magento 2.4, Adobe Commerce или Magento требуют, чтобы Elasticsearch был поисковой системой по каталогу по умолчанию. Поэтому он становится обязательным компонентом и не может быть отключен при установке Magento. Elasticsearch предоставляет клиентам более быстрые и релевантные результаты поиска в режиме реального времени, что повышает коэффициент конверсии бизнеса. Это огромное преимущество как для покупателей, так и для владельцев магазинов Magento 2.

Как работает эластичный поиск?

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

Когда необработанные данные поступают в Elasticsearch из различных источников, таких как журналы, системные показатели и веб-приложения, Elasticsearch обрабатывает их. Затем он индексирует эти данные, и после этого пользователи могут выполнять сложный поиск данных и получать подробные сводки своих данных с помощью агрегирования. (Эластика.co)

эластичная поисковая структура
Источник: Thirdrocktechkno.com

Некоторые важные особенности Elasticsearch:

  • Быстрый текстовый поиск
  • Предложения по поиску
  • Автозаполнение
  • Проверка орфографии/опечаток и обнаружение стоп-слов
  • Регистрация и анализ
  • Геолокация Поиск

Преимущества Magento 2 Elasticsearch

Большой опыт поиска

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

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

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

Быстрый поиск

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

Высокая масштабируемость и управление огромными объемами данных

Elasticsearch основан на распределенной архитектуре. Компания заявляет, что «документы, хранящиеся в Elasticsearch, распределяются по разным контейнерам, известным как осколки, которые дублируются для предоставления избыточных копий данных в случае сбоя оборудования». Поэтому его природа позволяет масштабировать до тысяч серверов и управлять огромными объемами данных.

Более того, он построен таким образом, что может успешно работать в любом кластере или системе с многочисленными узлами. В результате расширение от одного небольшого кластера до более крупного требует минимальной подготовки и практически бесшовно.

Без схемы

Elasticsearch использует JSON, то есть нотацию объектов JavaScript. Он хранит документы JSON с данными индексации для определения структуры данных и делает их доступными для поиска. Это означает, что он не требует какого-либо определения данных и обычно использует значения по умолчанию для индексации данных, если не указан конкретный тип данных. Когда объект с новым свойством индексируется позже, определения сопоставления автоматически обновляются. Следовательно, он не содержит схемы.

Предварительные условия для настройки Elasticsearch

В качестве обязательного дополнения к платформе Magento Elasticsearch должен быть установлен и настроен до того, как пользователи обновятся до версии 2.4.x. Кроме того, пользователи должны знать, что Adobe больше не поддерживает Adobe Commerce 2.3.x и PHP 7.3. Поэтому рекомендуется перейти на Adobe Commerce 2.4.x и PHP 7.4.x , чтобы сохранить соответствие PCI.

Adobe-commerce-примечание-на-версиях
Источник: Adobe Commerce DevDocs

Текущая последовательность установки Magento 2.4.x требует, чтобы пользователи установили Elasticsearch вместе со следующими дополнительными требованиями:

  • Веб-сервер (Apache или Nginx)
  • MySQL
  • PHP

Версия, которую Magento запрашивает для всех установок, — Elasticsearch 7.6.x, поэтому пользователи должны убедиться, что они выбрали именно эту версию. Некоторые текущие сторонние расширения Magento 2 Elasticsearch могут помочь вам интегрировать Elasticsearch в ваши магазины Magento.

Простая настройка Elasticsearch для вашего магазина Magento

Здесь мы проведем вас через шаги по настройке Elasticsearch с помощью панели администратора Magento 2.

Шаг 1. Настройка параметров поиска Magento 2 Elasticsearch

1. Войдите в панель администратора Magento 2 как администратор.

magento-админ-панель

2. Щелкает Магазины. В Настройках выберите Конфигурация . На этой странице щелкните раздел Каталог, чтобы развернуть его.

magento-конфигурация-панель

3. Выберите Поиск по каталогу . Здесь вы видите все версии поисковой системы для выбора и другие общие настройки.

  • Минимальная длина запроса : минимальное количество символов, которое должны ввести пользователи, прежде чем появятся рекомендации или предложения Elasticsearch. И системное значение по умолчанию равно 3.
  • Максимальная длина запроса : максимальное количество символов, которое нужно ввести, чтобы увидеть результаты. Системное значение по умолчанию — 128.
  • Количество популярных результатов поиска в кэше: здесь вы вводите ограничение на количество популярных результатов поиска для повышения скорости отклика. Значение по умолчанию — 100. При втором поиске термина введите «0», чтобы кэшировать все результаты.
  • Включить или отключить индексатор EAV: измените это поле, чтобы увеличить скорость индексации и избежать сторонних расширений, использующих индексатор.
  • Ограничение автозаполнения: вы устанавливаете значение, чтобы ограничить максимальное количество результатов поиска, отображаемых для автозаполнения Magento 2 Elasticsearch. Это помогает повысить производительность поиска и сократить отображаемый список. По умолчанию установлено значение 8.
общие настройки эластичного поиска

Шаг 2: Настройка подключения к Magento 2 Elasticsearch

В следующей таблице показаны необходимые параметры для настройки и проверки соединения с Magento. Если вы не изменяете какие-либо настройки и оставляете работать значения по умолчанию, перейдите к следующему шагу.

Magento-2-elasticsearch-test-table-connection
Источник: Adobe Commerce DevDocs
Magento-2-elasticsearch-connection-test-fields

Нажмите Test Connection , чтобы завершить настройку и тестирование.

Если подключение не удалось, попробуйте следующие способы

  • Убедитесь, что ваш сервер Elasticsearch все еще работает.
  • Войдите на сервер Magento и пропингуйте хост Elasticsearch, если он находится на другом хосте, отличном от Magento. Устраните все проблемы с сетевым подключением и повторно проверьте подключение.
  • Устраните все следы стека и ошибки в командном окне, где вы запустили Elasticsearch, прежде чем продолжить. И убедитесь, что вы запустили Elasticsearch как пользователь с root-доступом.
  • Убедитесь, что брандмауэр UNIX и SELinux отключены, или включите связь между Elasticsearch и Magento, настроив правила.
  • Убедитесь, что порт, выбранный в поле «Порт сервера Elasticsearch», еще не используется другим процессом, используя команду netstat -an | grep **listen-port** команда netstat -an | grep **listen-port** .

Шаг 3. Настройте предложения и рекомендации

Как упоминалось выше, поисковые рекомендации и предложения Magento 2 Elasticsearch удобны и полезны для клиентов, которые ищут подходящие продукты.

На этом этапе вы можете использовать настройки по умолчанию или внести некоторые изменения:

  • Включите поля Включить рекомендации по поиску и Включить предложения по поиску .
  • Выберите количество рекомендаций и предложений по поиску в полях Количество рекомендаций по поиску и Количество предложений по поиску.
  • Разрешить отображение количества результатов, найденных для каждой рекомендации и предложения, в полях « Показать количество результатов для каждой рекомендации » и « Показать количество результатов для каждого предложения» .
  • Укажите значение в поле « Минимальные термины для соответствия» , чтобы установить минимальное количество терминов, которым должны соответствовать результаты поиска, чтобы пользователи получали наиболее релевантные.
Magento-2-elasticsearch-рекомендации-предложения-настройки

Когда вы закончите настройку, нажмите « Сохранить конфигурацию ».

Шаг 4. Переиндексация поиска по каталогу и обновление кэша всей страницы

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

С использованием Панель администратора:

  1. В панели администратора нажмите « Система» и перейдите к « Управление кешем».
  2. Установите флажок « Кэш страницы ».
  3. Выберите « Обновить » в списке « Действия » в правом верхнем углу страницы.
раздел управления кешем

Чтобы очистить кеш, запустите команду magento cache:clean .

Используя командную строку:

  • Войдите в систему как владелец файловой системы или переключитесь на нее на своем сервере Magento.
  • Чтобы переиндексировать только поисковый индекс каталога, введите:

bin/magento indexer:reindex catalogsearch_fulltext

  • Чтобы переиндексировать все индексаторы, введите:

bin/magento indexer:reindex

  • Дождитесь завершения процесса переиндексации.

Заключение

Elasticsearch, используемый такими известными именами, как Netflix, LinkedIn, eBay и т. д., призван сделать поиск по сайту простым и эффективным для ваших клиентов. После завершения настройки Magento 2 Elasticsearch ваш магазин будет усилен, чтобы конвертировать поисковые запросы в продажи и свести к минимуму отказ от корзины.
Надеемся, что этот пост будет полезен, и мы желаем вам удачи в электронной коммерции!