设置OpenSearch服务
此 OpenSearch 服务是Elasticsearch7.10.2的开源分支,在Elasticsearch的许可更改之后。 请参阅 开源项目 在GitHub中。
OpenSearch允许您从任何来源、任何格式获取数据,并实时搜索和可视化数据。
- 产品目录中的产品的快速和高级搜索
- OpenSearch分析器支持多种语言
- 支持停用词和同义词
- 在重新索引操作完成之前,索引不会影响客户
在专业集成环境和入门环境中使用以下说明进行服务设置,包括 master
分支。
启用OpenSearch:
-
对于Starter和Pro集成环境,添加
opensearch
服务对象.magento/services.yaml
具有相应版本和已分配磁盘空间(以MB为单位)的文件。 在这种情况下,版本2是合适的。 不需要次要版本,因为云基础架构使用最新版本的OpenSearch。code language-yaml opensearch: type: opensearch:2 disk: 1024
对于Pro项目,您必须 提交Adobe Commerce支持票证 在暂存环境和生产环境中更改OpenSearch版本。
-
设置或验证
relationships
中的属性.magento.app.yaml
文件。code language-yaml relationships: opensearch: "opensearch:opensearch"
-
添加、提交和推送代码更改。
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>
有关这些更改如何影响您的环境的信息,请参阅 配置服务.
-
部署过程完成后,使用SSH登录到远程环境。
code language-bash magento-cloud ssh
-
重新索引目录搜索索引。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
清理缓存。
code language-bash bin/magento cache:clean
OpenSearch软件兼容性
在云基础架构项目上安装或升级Adobe Commerce时,请始终检查OpenSearch服务版本与 OpenSearch PHP Adobe Commerce的客户端。
-
首次设置 — 确认
services.yaml
文件与为Adobe Commerce配置的OpenSearch PHP客户端兼容。 -
项目升级 — 验证新应用程序版本中的OpenSearch PHP客户端是否与云基础架构上安装的OpenSearch服务版本兼容。
服务版本和兼容性支持取决于在云基础架构上测试和部署的版本,并且有时不同于Adobe Commerce内部部署支持的版本。 请参阅 系统要求 在 安装指南 以获取支持的版本的列表。
验证OpenSearch软件兼容性:
-
在本地工作站上,转到您的项目目录。
-
显示活动环境的OpenSearch详细信息。
code language-bash magento-cloud relationships --property=opensearch
-
或者,您可以使用SSH登录到远程环境。
code language-bash magento-cloud ssh
-
检索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 |
-
检索已安装的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/" }
.magento.app.yaml
和 services.yaml
文件,并在票证中声明PHP版本。 有关对PHP版本、扩展或环境设置的自助更改,请参见 PHP设置 在 应用程序配置.重新启动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插件:
-
从您的OpenSearch插件中删除
.magento/services.yaml
文件。 -
添加、提交和推送代码更改。
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>
-
提交
.magento/services.yaml
对您的云存储库进行了更改。 -
重新索引目录搜索索引。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
清理缓存。
code language-bash bin/magento cache:clean