如何在 Magento 2 中配置 Elasticsearch

已发表: 2022-12-20

目录

Magento 平台为企业主提供了一个很好的机会,让他们能够以更少的限制和更大的灵活性开设他们的商店。 一个商店的许多类别和子类别下可能有数千种产品,而通常情况下,顾客花在搜索产品上的时间往往很短。 因此,如果您无法为客户提供轻松的搜索体验和有用的实时搜索结果,您的 Magento 商店可能会面临转化率下降的问题。 这就是您需要强大的搜索引擎的原因,而 Magento 2 Elasticsearch 可以助您一臂之力。

Magento 2 中的 Elasticsearch 是什么?

弹性搜索标志

根据 Elasticsearch BV 的说法,Elasticsearch 是一种分布式、免费且开放的搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化数据。

Elasticsearch 于 2010 年首次发布,它建立在一个名为 Apache Lucene 的基于 Java 的搜索和索引库之上。 它是一个全文搜索引擎,通过比较文档或数据库中的词来建议相关关键字并显示完整查询。 此外,其分布式模型和对所有类型数据的开放性使其能够快速搜索并易于扩展。

由于这些能力,Elasticsearch 被用于应用程序搜索; 网站搜索; 企业搜索; 日志记录和日志分析; 应用性能监控; 地理空间数据分析和可视化; 业务分析等

从 Magento 2.4 开始,Adobe Commerce 或 Magento 要求将 Elasticsearch 作为默认的目录搜索引擎。 因此,它成为一个强制组件,并且在安装 Magento 时不能被禁用。 Elasticsearch 实时为客户提供更快、更相关的搜索结果,从而提高业务转化率。 这对客户和 Magento 2 店主来说都是一个巨大的好处。

弹性搜索是如何工作的?

使 Elasticsearch 能够给出如此快速和可靠的搜索结果的是它的索引能力,在这种能力中它寻找索引而不是检查文本。 弹性索引是一组结构相似的文档,可以快速高效地检索数据,用于存储逻辑上相关的文档。

当原始数据从各种来源(例如日志、系统指标和 Web 应用程序)流入 Elasticsearch 时,Elasticsearch 会对其进行处理。 然后它索引这些数据,之后,用户可以对数据执行复杂的搜索并使用聚合接收其数据的详细摘要。 (Elastic.co)

弹性搜索结构
资料来源:thirdrocktechkno.com

Elasticsearch 的一些重要特性

  • 快速文本搜索
  • 搜索建议
  • 自动完成
  • 拼写/错误输入检查和停用词检测
  • 记录和分析
  • 地理位置搜索

Magento 2 弹性搜索的优势

很棒的搜索体验

搜索引擎的响应时间慢和功能差会导致高跳出率。 凭借 Elasticsearch 的快速结果生成和实时相关结果,客户不会气馁而离开该网站。

由于自动完成和自动建议,客户可以节省大量时间和精力,并减少不正确的查询。

此外,搜索者通常会遇到的一件令人恼火的事情是打字错误或拼写错误。 这导致搜索引擎无法识别关键字并给出“未找到结果”状态。 Elasticsearch 可以找到停用词和与之匹配的短语,所以它仍然可以给出相关的结果,甚至可以使它们更准确。

快速搜索

Elasticsearch 是一个强大的工具,可以在 10 秒内检索搜索到的关键字,比典型的基于 SQL 的搜索快得多。 由于它建立在 Lucene 之上并使用分布式倒排索引,因此 Elasticsearch 在全文搜索方面表现出色。 ElasticSearch 可以捕获所有针对结果集的搜索查询,这样每次搜索查询包含缓存过滤器时,它都会直接从缓存中搜索结果。 这意味着文档被索引和可搜索之间的时间相对较短,从而增加了搜索结果响应。

高扩展性和海量数据管理

Elasticsearch 基于分布式架构。 该公司表示,“存储在 Elasticsearch 中的文档分布在称为碎片的不同容器中,这些容器被复制以在硬件出现故障时提供数据的冗余副本。” 因此,它的性质允许扩展到数千台服务器并管理大量数据。

此外,它的构建方式使其可以在具有大量节点的任何集群或系统上成功运行。 因此,从一个小集群扩展到一个更大的集群只需要很少的准备,而且几乎是无缝的。

无模式

Elasticsearch 使用 JSON,即 JavaScript Object Notation。 它存储带有索引数据的 JSON 文档以检测数据结构并使它们可搜索。 这意味着它不需要任何类型的数据定义,并且通常使用默认值来索引数据,除非给出了特定的数据类型。 当具有新属性的对象稍后被索引时,映射定义会自动更新。 因此,它是无模式的。

设置 Elasticsearch 的先决条件

作为 Magento 平台的必需附加组件,Elasticsearch 必须在用户升级到 2.4.x 版本之前安装和配置。 此外,用户应注意 Adob​​e 不再支持 Adob​​e Commerce 2.3.x 和 PHP 7.3。 因此建议升级到 Adob​​e Commerce 2.4.x 和PHP 7.4.x以保持 PCI 合规性。

adobe-commerce-note-on-版本
资料来源:Adobe Commerce DevDocs

当前的 Magento 2.4.x 安装顺序要求用户安装 Elasticsearch 以及这些附加要求:

  • 网络服务器(Apache 或 Nginx)
  • MySQL
  • PHP

Magento 为所有安装请求的版本是 Elasticsearch 7.6.x,因此用户应确保选择此版本。 一些当前的第三方 Magento 2 Elasticsearch 扩展可以帮助您将 Elasticsearch 集成到您的 Magento 商店中。

为您的 Magento 商店轻松配置 Elasticsearch

在这里,我们将指导您完成使用 Magento 2 管理面板配置 Elasticsearch 的步骤。

第 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-连接测试表
资料来源:Adobe Commerce DevDocs
Magento-2-elasticsearch-connection-test-fields

单击测试连接以完成设置和测试。

如果连接不成功,请尝试以下方式

  • 检查您的 Elasticsearch 服务器是否仍在运行。
  • 登录到 Magento 服务器并 ping Elasticsearch 主机(如果它与 Magento 位于不同的主机上)。 解决任何网络连接问题并重新测试您的连接。
  • 在继续之前解决启动 Elasticsearch 的命令窗口中的任何堆栈跟踪和错误。 并确保您以具有 root 访问权限的用户身份启动 Elasticsearch。
  • 确保关闭 UNIX 防火墙和 SELinux,或通过设置规则启用 Elasticsearch 和 Magento 之间的通信。
  • 通过使用netstat -an | grep **listen-port**确保在 Elasticsearch 服务器端口字段中选择的端口未被另一个进程使用。 netstat -an | grep **listen-port**命令。

第三步:配置建议

如上所述,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 配置完成后,您的商店将得到加强,以将搜索转化为销售额并最大限度地减少购物车放弃率。
希望这篇文章对您有用,祝您在电子商务中好运!