使用Live Search成功完成设置
Adobe Commerce Live Search和Catalog Service共同合作,提供高性能、相关且直观的搜索解决方案,让您的客户能够快速准确地找到所需的内容。 具体来说,Catalog Service显示您的SaaS服务的目录数据,如要使用的Live Search。
本文提供了使用Catalog Service实现Live Search的分步说明。
受众
本文面向负责安装和配置Adobe Commerce实例的开发人员或团队中的系统集成商。
要求
- Adobe Commerce 2.4.4+
- PHP版本8.1、8.2或8.3
- Composer
支持的平台
- Adobe Commerce on Cloud (ECE) :2.4.4+
- Adobe Commerce内部部署(EE) :2.4.4+
工作流概述
从较高层面来看,加入Live Search要求您:
1.安装Live Search扩展
Live Search是通过Composer从Adobe市场安装为扩展的。 安装和配置Live Search后,AdobeCommerce开始与SaaS服务共享搜索和目录数据。 此时,管理员 用户可以设置、自定义和管理搜索Facet、同义词和促销规则。
-
note important IMPORTANT 由于Elasticsearch7将于2023年8月宣布终止支持,建议所有Adobe Commerce客户迁移到OpenSearch 2.x搜索引擎。 有关在产品升级期间迁移搜索引擎的信息,请参阅_升级指南_中的迁移到OpenSearch。 -
从Adobe市场下载
live-search
包。 -
从命令行运行以下命令:
code language-bash composer require magento/live-search
如果要将Live Search扩展添加到 新的 Adobe Commerce安装中,请运行以下命令以暂时禁用OpenSearch和相关模块,并安装Live Search。 然后,继续执行步骤4。
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch7 Magento_OpenSearch Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
如果要将Live Search扩展添加到 现有 Adobe Commerce安装,请运行以下命令以禁用提供storefront搜索结果的Live Search模块。 然后,继续执行步骤4:
code language-bash bin/magento module:disable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
Elasticsearch继续管理店面的搜索请求,而Live Search服务在后台同步目录数据和索引产品。
-
运行以下命令:
code language-bash bin/magento setup:upgrade
-
验证以下索引器是否设置为“按计划更新”:
- 产品信息源
- 产品变型馈送
- 目录属性信息源
- 产品价格信息源
- 范围网站数据馈送
- 范围客户组数据馈送
- 类别信息源
- 类别权限信息源
-
如果您正在新的Commerce实例上安装Live Search,则您已完成,可以跳至2。 配置API密钥部分。 如果您要将Live Search安装到现有Commerce实例,请继续执行下一步。
-
运行以下命令以启用Live Search扩展、禁用OpenSearch并运行
setup
。code language-bash bin/magento module:enable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch6 Magento_Elasticsearch7 Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
code language-bash bin/magento setup:upgrade
安装Live Search测试版
此测试版支持productSearch
查询中的三种新功能:
-
分层搜索 — 在另一个搜索上下文中搜索 — 使用此功能,您最多可以为搜索查询执行两层搜索。 例如:
- 第1层搜索 — 在“product_attribute_1”上搜索“motor”。
- 第2层搜索 — 在“product_attribute_2”上搜索“部件号123”。 此示例在结果中搜索“motor”的“部件号123”。
分层搜索可用于
startsWith
搜索索引和contains
搜索索引,如下所述: -
startsWith搜索索引 — 使用
startsWith
索引进行搜索。 此新功能允许:- 搜索属性值以特定字符串开头的产品。
- 配置“结尾为”搜索,以便购物者可以搜索属性值以特定字符串结尾的产品。 要启用“结束于”搜索,需要反向摄取产品属性,并且API调用也应该是一个反向字符串。
-
包含搜索索引 — 使用包含索引搜索属性。 此新功能允许:
-
在较大的字符串中搜索查询。 例如,如果购物者搜索字符串“HAPE-123”中的产品编号“PE-123”。
- 注意:此搜索类型不同于现有的短语搜索,后者执行自动完成搜索。 例如,如果您的产品属性值为“outdoor pants”,则短语搜索会返回“out pan”的响应,但不会返回“oor ants”的响应。 但是,包含搜索会返回“或蚂蚁”的响应。
-
这些新条件增强了搜索查询过滤机制以细化搜索结果。 这些新条件不会影响主搜索查询。
您可以在搜索结果页面上实施这些新条件。 例如,您可以在页面上添加新部分,购物者可以进一步细化其搜索结果。 您可以允许购物者选择特定的产品属性,如“制造商”、“部件号”和“说明”。 从该位置,他们使用contains
或startsWith
条件在这些属性中搜索。 有关可搜索的属性的列表,请参阅管理员指南。
-
要安装测试版,请将以下依赖关系添加到您的项目中:
code language-bash composer require magento/module-live-search-search-types:"^1.0.0-beta1"
-
提交更改并将更改推送到
composer.json
和composer.lock
云项目。 了解更多。此测试版在管理员中为 Autocomplete、Contains 和 Starts with 添加 Search types 复选框。 它还更新了
productSearch
GraphQL API以包含这些新搜索功能。 -
在管理员中,将产品属性设置为可搜索,并指定该属性的搜索功能,如 包含(默认值)或 开头为。 您最多可以为 Contains 指定6个要启用的属性,为 Starts with 指定6个要启用的属性。 对于测试版,请注意,管理员不强制执行此限制,但会在API搜索中强制执行。
-
请参阅开发人员文档,了解如何使用新的
contains
和startsWith
搜索功能更新Live Search API调用。
字段描述
Autocomplete
Autocomplete
,您可以在搜索筛选器中使用contains
。 此处,contains
中的搜索查询返回自动完成类型的搜索响应。 Adobe建议您使用此类型的搜索来搜索描述字段,这些字段的长度通常超过50个字符。Starts with
startsWith
。2.配置API密钥
需要Adobe Commerce API密钥及其关联的私钥才能将Live Search连接到Adobe Commerce的安装。 API密钥在Commerce许可证持有者的帐户中生成和维护,该持有人可以与开发人员或系统集成商共享它。 然后,开发人员可以代表许可证持有人创建和管理SaaS数据空间。 如果您已经有一组API密钥,则无需重新生成它们。
请参阅Commerce Services Connector文章以了解如何配置API密钥。
3.同步您的目录数据 synchronize-catalog-data
Live Search将目录数据移动到Adobe的SaaS基础架构。 数据被编入索引,搜索结果从此索引直接传送到店面。 根据大小和复杂性,索引可能需要30分钟到几个小时。
要开始将目录数据初始同步到SaaS服务,请按照以下顺序运行以下命令:
bin/magento saas:resync --feed productattributes
bin/magento saas:resync --feed products
bin/magento saas:resync --feed scopesCustomerGroup
bin/magento saas:resync --feed scopesWebsite
bin/magento saas:resync --feed prices
bin/magento saas:resync --feed productoverrides
bin/magento saas:resync --feed variants
bin/magento saas:resync --feed categories
bin/magento saas:resync --feed categoryPermissions
运行这些命令时,将开始将目录数据与SaaS服务进行初始同步。
cron
运行开始,该过程可能需要至少一个小时才能将您的数据同步到SaaS服务。监视器同步进度
您可以查看使用数据管理功能板同步和共享的数据。 此仪表板提供关于您店面产品数据可用性的宝贵见解,确保可及时向购物者显示这些数据。
您还可以运行sync命令,并使用Commerce CLI和数据导出扩展日志对同步过程进行疑难解答。
将来的产品更新
初始同步后,增量产品更新最多可能需要15分钟才能用于店面搜索。 若要了解详细信息,请参阅“索引”文档中的流式产品更新。
4.验证是否已导出数据 verify-export
要检查您的目录数据是否已从Adobe Commerce导出并与Live Search同步,您有几个选项:
-
在以下表中查找条目:
cde_products_feed
cde_product_attributes_feed
note note NOTE 如果您收到 table does not exist
错误,请在catalog_data_exporter_products
和catalog_data_exporter_product_attributes
表中查找条目。 这些表名称在4.2.1之前的Live Search版本中使用。 -
使用带有默认查询的GraphQL游乐场来验证以下内容:
- 返回的产品计数接近您对商店视图的预期。
- 将返回Facet。
有关其他帮助,请参阅支持知识库中的Live Search 目录未同步。
5.配置数据
正确配置产品数据可确保为您的客户获得良好的搜索结果。 在此部分中,您可以启用产品列表构件并分配类别。
启用产品列表小组件
安装Live Search 4.0.0+时,默认启用产品列表小组件。 启用小组件后,会为搜索结果页面和类别浏览产品列表页面使用不同的UI组件。 此UI组件直接调用目录服务API,这将缩短响应时间。
如果您的Live Search版本低于4.0.0+,则必须手动启用产品列表小组件。
-
从 管理员,转到 Stores > Settings>Configuration。
-
在 Live Search 下,选择 Storefront Features。
-
将 Enable Product Listing Widgets 设置为
Yes
。
更改此配置时,将显示消息Page cache is invalidated
。 您需要刷新Magento缓存以保存更改。
-
通过执行以下操作之一访问缓存管理页:
- 单击工作区上方消息中的 Cache Management 链接。
- 在 管理员 侧边栏上,转到 System > Tools>Cache Management。
-
选择 配置 Cache Type并单击 Flush Magento Cache。
刷新缓存后,立即对店面进行更改。
分配类别
Live Search中返回的产品必须分配给类别。 例如,在Luma中,产品被划分为“男性”、“女性”和“齿轮”等类别。 “Top”、“Bottoms”和“Watches”也设置了子类别。 这些类别分配可改进筛选时的粒度。
6.测试连接 test-connection
现在,在SaaS中使用目录数据,测试以确保在以下情况下返回产品数据:
- Search框正确返回结果
- 类别浏览正确返回结果
- Facet在搜索结果页面上可用作过滤器
如果一切工作正常,Live Search已安装、连接并可以使用。
如果在店面中遇到问题,请检查var/log/system.log
文件中是否有服务端的API通信失败或错误。
要允许Live Search通过防火墙,请将commerce.adobe.io
添加到允许列表。
7.验证事件是否正在捕获数据
确保部署到您站点的店面事件正常工作。 这对于Headless实施尤为重要。
8.针对您的店面进行定制
您已安装Live Search扩展、同步、验证和配置您的数据。 下一步是确保Live Search构件符合商店的外观。
您可以根据需要通过定义自定义CSS规则来设置弹出框和PLP小组件的样式。 查看样式弹出框元素和产品列表页小组件。
如果您希望扩展小组件的功能,则每个小组件的源代码在公共存储库中可用。
在此方案中,您可以根据自己的需求自定义JavaScript,然后将自定义代码托管在您的CDN上。 此自定义脚本与Live Search服务通信并返回正常结果,从而允许您控制小组件的功能。
正在更新Live Search update
在更新Live Search之前,请从命令行运行以下命令以检查已安装的Live Search版本:
composer show magento/module-live-search | grep version
要更新Live Search,请从命令行运行以下命令:
composer update magento/live-search --with-dependencies
要更新到主要版本,例如从3.1.1到4.0.0,请按如下方式编辑项目的根Composer .json
文件:
-
如果当前安装的
magento/live-search
版本为3.1.1
或更低版本,并且要升级到版本4.0.0
或更高版本,请在升级之前运行以下命令:code language-bash bin/magento module:enable Magento_AdvancedSearch
有关当前安装的
magento/live-search
版本的信息,请运行以下命令:code language-bash composer show magento/live-search
-
打开根
composer.json
文件并搜索magento/live-search
。 -
在
require
部分中,更新版本号,如下所示:code language-json "require": { ... "magento/live-search": "^4.0", ... }
-
保存
composer.json
。 然后,从命令行运行以下命令:code language-bash composer update magento/live-search --with-dependencies
正在卸载Live Search uninstall
要卸载Live Search,请参阅卸载模块。
Live Search包 packages
Live Search扩展包含以下包:
module-live-search
module-live-search-adapter
module-live-search-storefront-popover
Live Search依赖项 dependencies
用于安装Live Search扩展的Composer中继包包括以下模块依赖项。
magento/module-saas-catalog
magento/module-saas-category
magento/module-saas-category-permissions
magento/module-saas-product-override
magento/module-saas-product-variant
magento/module-saas-price
magento/module-saas-scopes
magento/module-bundle-product-data-exporter
magento/module-catalog-inventory-data-exporter
magento/module-catalog-url-rewrite-data-exporter
magento/module-configurable-product-data-exporter
magento/module-parent-product-data-exporter
magento/module-gift-card-product-data-exporter
magento/module-bundle-product-override-data-exporter
data-services
services-id
高级概念
以下部分提供了使用Live Search和Catalog Service时更高级的主题。
端点
Live Search通过https://catalog-service.adobe.io/graphql
处的端点进行通信。
由于Live Search没有访问完整产品数据库的权限,Live Search GraphQL和Commerce核心GraphQL API没有完全奇偶校验。
Adobe建议直接调用SaaS API,尤其是目录服务端点。
- 通过绕过Commerce数据库/Graphql进程来提高性能并降低处理器负载
- 利用Catalog Service联盟从单个终结点调用Live Search、Catalog Service和Product Recommendations。
对于某些用例,调用Catalog Service以获取产品详细信息和类似用例可能更好。 有关详细信息,请参阅refineProduct。
如果您有自定义Headless实施,请查看Live Search引用实施:
默认情况下,当您不使用标准组件(如Search Adapter、Luma构件或AEM CIF构件)时,无法自动收集用户交互数据。 Adobe Sensei将使用此收集的数据进行智能推销和性能跟踪。 要解决此问题,您需要开发自定义解决方案,以采用Headless方式实施此数据收集。
Live Search的最新版本已使用Catalog Service。
语言支持
Live Search小组件支持以下语言:
如果构件检测到Commerce管理语言设置与支持的语言匹配,则它会默认为该语言。 否则,小组件将默认使用英语。 在Admin中,通过导航到 Stores> Settings >Configuration > General> Country Options来配置语言设置。
管理员还可以设置搜索索引的语言,以帮助确保获得更好的搜索结果。
构件代码存储库
产品列表页面小部件和实时搜索字段小部件的代码可从GitHub下载。
有权访问代码的开发人员可以完全自定义代码的工作方式和外观。 他们在自己的服务器上托管代码,但仍使用Live Search服务。
Data Export扩展
启用Live Search后,Data Export扩展将在Commerce应用程序和Live Search之间同步Commerce数据。 此过程确保店面上有最新的Commerce数据。 在Admin中,您可以使用数据管理功能板检查同步状态。 您可以使用Commerce CLI和日志管理数据导出过程并排除其故障。 有关详细信息,请参阅数据导出指南。
Inventory management
Live Search支持Commerce中的Inventory management功能(以前称为多Source清单,或MSI)。 要启用完全支持,您必须将依赖项模块commerce-data-export
更新为版本102.2.0+。
Live Search返回一个布尔值,表明产品在Inventory management中是否可用,但不包含有关哪个来源具有库存的信息。
价格索引器
Live Search客户可以使用SaaS价格索引器,它提供了更快的价格更改更新和同步时间。
价格支持
Live Search小组件支持Adobe Commerce支持的大多数价格类型,但不是所有价格类型。
目前支持基本价格。 不受支持的高级价格包括:
- 成本
- 最低广告价格
查看API Mesh以了解更复杂的价格计算。
价格格式支持Commerce实例中的区域设置配置设置: 存储 >设置> 配置 >常规> 常规 >本地选项>区域设置。
Headless店面支持
(可选)您可能需要安装module-data-services-graphql
模块,该模块扩展了应用程序的现有GraphQL覆盖范围,以包含店面行为数据收集所需的字段。
composer require magento/module-data-services-graphql
此模块可向GraphQL查询添加其他上下文:
dataServicesStorefrontInstanceContext
dataServicesMagentoExtensionContext
dataServicesStoreConfigurationContext
B2B支持
PWA支持
Live Search适用于PWA Studio,但用户可能看到与其他Commerce实现略有不同。 在威尼亚省可以使用搜索和产品列表页面等基本功能,但Graphql的某些排列可能无法正常工作。 此外,可能存在性能差异。
- 当前Live Search的PWA实现需要比Live Search更多的处理时间来返回搜索结果(使用本机Commerce店面)。
- PWALive Search不支持事件处理。 因此,搜索报表和智能促销在PWA店面中不起作用。
- 使用PWA Studio时,GraphQL不支持直接筛选
description
、name
、short_description
,但是这些字段可以通过更一般的筛选器返回。
要将Live Search与PWA Studio一起使用,集成商还必须:
-
在
storeDetails
对象中设置environmentId
。code language-javascript const storeDetails: StoreDetailsProps = { environmentId: <Storefront_ID>, websiteCode: "base", storeCode: "main_website_store", storeViewCode: "default", searchUnitId: searchUnitId, config: { minQueryLength: 5, pageSize: 8, currencySymbol: "$", }, };
Cookies
Live Search收集用户交互数据,作为其基本功能的一部分,Cookie用于存储此数据。 在收集任何用户信息时,用户必须同意存储Cookie。 Live Search和Product Recommendations共享数据流,因此使用相同的Cookie机制。 有关它的详细信息,请参阅句柄Cookie限制。