Magento 2.1/2.2 集成 Elasticsearch

6.14K 浏览开发笔记elasticsearch

Magento 2.1/2.2 集成 Elasticsearch

此方法将向您展示如何使用Amazon Elasticsearch服务和Smile ElasticSuite在Magento2.1上使用Elasticsearch 。

要做到这一点,我们需要:

  • 配置Amazon Elasticsearch服务
  • 在Magento Open Source 2.1实例中安装并配置Smile ElasticSuite

    配置Amazon Elasticsearch服务

    使用您的Amazon控制台帐户,导航到Elasticsearch服务(服务>分析> Elasticsearch服务)。然后点击“创建一个新的域”按钮。

image http://bbs.mallol.cn/assets/images/1-HrDCWy8mOLYoM0qM.png

第1步:定义域

定义您的Elasticsearch域,这将成为您的域端点的一部分。

另外,指定将用于您的域的Elasticsearch引擎的版本。 要将Elasticsearch与Smile ElasticSuite连接,我们应该使用Elasticsearch 2.1或更高版本。

image http://bbs.mallol.cn/assets/images/1-lkVTpGGUZeuucxrL.png

步骤2:配置群集

根据您的要求配置群集的实例和存储设置。

根据您的需要选择正确的实例类型和实例数量。 (为了测试目的,我们将选择 t2.small.elasticsearch)

image http://bbs.mallol.cn/assets/images/1-tmQUdTPnUaxpohpq.png
然后,选择适合您的数据节点的存储类型。

image http://bbs.mallol.cn/assets/images/1-fXKR9TsqsqoP0kkD.png

第3步:设置访问

通过选择VPC访问来配置网络,这将使用VPC中的私有IP地址来默认提供安全性。

image http://bbs.mallol.cn/assets/images/1-EQcs0MOxQLmNLypn.png
附加策略来控制对域的访问,您可以通过 从模板选择器中选择一个策略模板来实现。

image http://bbs.mallol.cn/assets/images/1-MdSWly3LWTqkBqcv.png

第4步:审查

查看信息,然后选择“ 确认并创建”按钮。

image http://bbs.mallol.cn/assets/images/1-iibnFJZpe17dfMcf.png
成功创建Elasticsearch域之后,其状态将首先是“Loading”。

image http://bbs.mallol.cn/assets/images/1-luswONtLPqjsCkIj.png

您将需要等待几分钟才能处于“活动”状态。

image http://bbs.mallol.cn/assets/images/1-Cvccov7qTv4mt0P7.png

注意VPC端点,稍后我们将使用它来连接Elasticsearch和Magento。

安装并配置Smile ElasticSuite

要安装Smile ElasticSuite,我们需要具备以下先决条件:
ElasticSearch 2.1或更高版本,安装了“脚本启用”和ICU和拼音插件
Magento 2.1.x实例
然后我们可以继续安装ElasticSuite:

安装ElasticSuite

通过composer安装ElasticSuite:

composer require smile/elasticsuite

启用该模块并运行ElasticSuite安装程序:

bin/magento module:enable Smile_ElasticsuiteCore Smile_ElasticsuiteCatalog Smile_ElasticsuiteSwatches Smile_ElasticsuiteCatalogRule Smile_ElasticsuiteVirtualCategory Smile_ElasticsuiteThesaurus Smile_ElasticsuiteCatalogOptimizer Smile_ElasticsuiteTracker

bin/magento setup:upgrade

在app/code自定义模块里创建etc.config文件,其中包含以下内容:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nOnamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default> 
<smile_elasticsuite_core_base_settings> 
    <es_client> 
        <servers>vpc-test-my_server.ap-northeast-1.es.amazonaws.com:443</servers>
        <!-- Use the VPC endpoint that we took down a while ago --> 
    </es_client> 
</smile_elasticsuite_core_base_settings> 
</default> 
</config>

自定义模块应依赖于Smile_ElasticsuiteCore,以确保配置将以正确的顺序加载:

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nOnamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="MyProject_ElasticSuite" setup_version="1.0.0"> 
    <sequence> 
        <module name="Smile_ElasticsuiteCore"/> 
    </sequence> 
    </module> 
</config>

配置ElasticSearch服务器

通过 Stores> Configuration> Smile Elastic Suite> Base Settings 配置ElasticSearch服务器 。

我们在自定义模块中指定的VPC端点应显示在 Elasticsearch服务器列表中。使用HTTPS和其他设置,您可以保留默认值。

image http://bbs.mallol.cn/assets/images/1-eiRzVOXeDdHcdnBz.png

过程索引

最后,详细介绍catalogsearch_fulltext 索引的重新 索引。

bin/magento index:reindex catalogsearch_fulltext 
bin/magento index:reindex elasticsuite_categories_fulltext 
bin/magento index:reindex elasticsuite_thesaurus

重建索引完成后,您现在可以查看通过Smile Elastic Suite呈现的前端目录和搜索页面。

测试

以下是使用ElasticSuite 的 自动完成功能的示例。

image http://bbs.mallol.cn/assets/images/1-MfLYMszvZw2sK28S.png

※ 其他功能和定制,你可以检查 Smile-SA/elasticsuite作为参考。

说明

由于Elasticsearch服务仅在Magento Commerce Edition中可用,您可以从使用此方法的Magento Open Source 2.1.x实例上使用Elasticsearch的优势中受益。

编辑问题
0