设置OpenSearch服务

OpenSearch 服务是Elasticsearch7.10.2的开源分支,在Elasticsearch的许可更改之后。 请参阅 开源项目 在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 服务对象 .magento/services.yaml 具有相应版本和已分配磁盘空间(以MB为单位)的文件。 在这种情况下,版本2是合适的。 不需要次要版本,因为云基础架构使用最新版本的OpenSearch。

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

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

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

    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服务版本与 OpenSearch PHP Adobe Commerce的客户端。

  • 首次设置 — 确认 services.yaml 文件与为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-terminal
    +------------------------------------------+--------------------------------------------------------+
    | 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-terminal
    {
       "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小时通知,以便Cloud Infrastructure团队有充足的时间来调配资源并进行安全升级。

重新启动OpenSearch服务

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

其他搜索配置

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

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

添加OpenSearch插件

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

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

请参阅 OpenSearch项目 以了解有关插件的更多信息。

删除OpenSearch插件

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

删除OpenSearch插件

  1. 从您的OpenSearch插件中删除 .magento/services.yaml 文件。

  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