设置OpenSearch服务

在Elasticsearch的许可更改之后,OpenSearch服务是Elasticsearch7.10.2的开源分支。 在GitHub中查看开源项目

WARNING
云基础架构上的Adobe Commerce不支持Elasticsearch7.11及更高版本。 Adobe Commerce版本2.3.7-p3、2.4.3-p2、2.4.4及更高版本支持OpenSearch服务。 内部部署安装继续支持Elasticsearch。

OpenSearch允许您从任何来源、任何格式获取数据,并实时搜索和可视化数据。

  • 产品目录中的产品的快速和高级搜索
  • OpenSearch分析器支持多种语言
  • 支持停用词和同义词
  • 在重新索引操作完成之前,索引不会影响客户

请按照以下说明在专业集成环境和入门环境(包括master分支)上进行服务设置。

NOTE
提交Adobe Commerce支持票证以更改Pro生产和暂存环境中的服务配置。
TIP
Adobe建议您在云基础架构项目中始终为您的Adobe Commerce设置OpenSearch,即使您计划为您的Adobe Commerce应用程序配置第三方搜索工具也是如此。 如果第三方搜索工具失败,则设置OpenSearch将提供回退选项。

启用OpenSearch

  1. 对于Starter和Pro集成环境,请将opensearch服务添加到具有相应版本和已分配磁盘空间(以MB为单位)的.magento/services.yaml文件中。 在这种情况下,版本2是合适的。 不需要次要版本,因为云基础架构使用最新版本的OpenSearch。

    code language-yaml
    opensearch:
        type: opensearch:2
        disk: 1024
    

    对于Pro项目,您必须提交Adobe Commerce支持票证才能在暂存环境和生产环境中更改OpenSearch版本。

  2. 设置或验证.magento.app.yaml文件中的relationships属性。

    code language-yaml
    relationships:
        opensearch: "opensearch:opensearch"
    
  3. 添加、提交和推送代码更改。

    code language-bash
    git add .magento/services.yaml .magento.app.yaml
    
    code language-bash
    git commit -m "Enable OpenSearch"
    
    code language-bash
    git push origin <branch-name>
    

    有关这些更改如何影响您的环境的信息,请参阅配置服务

  4. 部署过程完成后,使用SSH登录到远程环境。

    code language-bash
    magento-cloud ssh
    
  5. 重新索引目录搜索索引。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. 清理缓存。

    code language-bash
    bin/magento cache:clean
    
TIP
在初始服务设置之后,您可以通过更新services.yaml.magento.app.yaml配置文件来更改已安装服务的软件版本。 有关升级或降级服务的指导,请参阅更改服务版本

OpenSearch软件兼容性

在云基础架构项目上安装或升级Adobe Commerce时,请始终检查OpenSearch服务版本与Adobe Commerce的OpenSearch PHP客户端之间的兼容性。

  • 首次设置 — 确认services.yaml文件中指定的OpenSearch版本与为Adobe Commerce配置的OpenSearch PHP客户端兼容。

  • 项目升级 — 验证新应用程序版本中的OpenSearch PHP客户端是否与云基础架构上安装的OpenSearch服务版本兼容。

服务版本和兼容性支持取决于在云基础架构上测试和部署的版本,并且有时不同于Adobe Commerce内部部署支持的版本。 有关支持的版本列表,请参阅​ 安装指南 ​中的系统要求

验证OpenSearch软件兼容性

  1. 在本地工作站上,转到您的项目目录。

  2. 显示活动环境的OpenSearch详细信息。

    code language-bash
    magento-cloud relationships --property=opensearch
    
  3. 或者,您可以使用SSH登录到远程环境。

    code language-bash
    magento-cloud ssh
    
  4. 检索OpenSearch服务连接详细信息。

    code language-bash
    vendor/bin/ece-tools env:config:show services
    

    在响应中,查找OpenSearch服务端点的IP地址和端口:

    code language-none
    +------------------------------------------+--------------------------------------------------------+
    | opensearch:                                                                                       |
    +------------------------------------------+--------------------------------------------------------+
    | username                                 | null                                                   |
    | scheme                                   | http                                                   |
    | service                                  | opensearch                                             |
    | fragment                                 | null                                                   |
    | ip                                       | 169.254.220.11                                         |
    | hostname                                 | hostf75wi3sd24l.opensearch.service._.magentosite.cloud |
    | port                                     | 9200                                                   |
    | cluster                                  | projectID-develop-4ranwui                              |
    | host                                     | opensearch.internal                                    |
    | rel                                      | opensearch                                             |
    | path                                     | null                                                   |
    | query                                    |                                                        |
    | password                                 | null                                                   |
    | type                                     | opensearch:2                                           |
    | public                                   | false                                                  |
    | host_mapped                              | false                                                  |
    
  5. 从服务终结点检索已安装的OpenSearch服务version:number

    code language-bash
    curl -XGET <opensearch-service-endpoint-ip-address>:9200
    
    code language-json
    {
       "name" : "opensearch.0",
       "cluster_name" : "opensearch",
       "cluster_uuid" : "_yzaae6-ywSEW1MaAF8ZPWyQ",
       "version" : {
         "distribution" : "opensearch",
         "number" : "2.5.0",
         "build_type" : "deb",
         "build_hash" : "aaaaaaa",
         "build_date" : "2023-01-23T12:07:18.760675Z",
         "build_snapshot" : false,
         "lucene_version" : "9.4.2",
         "minimum_wire_compatibility_version" : "7.10.0",
         "minimum_index_compatibility_version" : "7.0.0"
    },
    "tagline" : "The OpenSearch Project: https://opensearch.org/"
    }
    
TIP
对于Pro项目,您必须提交Adobe Commerce支持票证才能仅在StagingProduction环境中安装或更新服务
指示所需的服务更改,包括更新的.magento.app.yamlservices.yaml文件,并在票证中声明PHP版本。 有关对PHP版本、扩展或环境设置的自助更改,请参阅​_应用程序配置_​中的PHP设置
对实时生产环境的更改(仅限​ Pro),至少需要48小时的通知。 这使云基础架构团队有充足的时间来调配资源并进行安全升级。 当基础架构团队确认请求并计划升级(不包括周末)时,通知期即开始。 例如,要在星期一完成服务升级,必须在星期三之前收到计划升级的确认。 在需求高峰期,处理您的请求可能需要更多时间。

重新启动OpenSearch服务

如果您需要重新启动OpenSearch服务,则必须联系Adobe Commerce支持部门。

其他搜索配置

  • 默认情况下,每次部署时都会重新生成云环境的搜索配置。 您可以使用SEARCH_CONFIGURATION部署变量来保留部署之间的自定义搜索设置。 请参阅部署变量

  • 为您的项目设置OpenSearch服务后,使用管理员UI测试OpenSearch连接并自定义Adobe Commerce的OpenSearch设置。

添加OpenSearch插件

或者,您可以通过将configuration:plugins部分添加到.magento/services.yaml文件中的OpenSearch服务来为OpenSearch添加插件。 例如,以下代码启用ICU分析和拼音分析插件。

opensearch:
    type: opensearch:2
    disk: 1024
    configuration:
        plugins:
            - analysis-icu
            - analysis-phonetic

有关插件的详细信息,请参阅OpenSearch项目

删除OpenSearch插件

.magento/services.yaml文件的opensearch:部分中删除插件条目​ 不会 ​卸载或禁用该服务。 要完全禁用该服务,必须从.magento/services.yaml文件中删除插件后重新索引OpenSearch数据。 此设计可防止依赖这些插件的数据可能丢失或损坏。

要删除OpenSearch插件

  1. .magento/services.yaml文件中删除OpenSearch插件条目。

  2. 添加、提交和推送代码更改。

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Remove OpenSearch plugin"
    
    code language-bash
    git push origin <branch-name>
    
  3. .magento/services.yaml更改提交到云存储库。

  4. 重新索引目录搜索索引。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. 清理缓存。

    code language-bash
    bin/magento cache:clean
    
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26