使用Live Search成功完成设置

Adobe Commerce Live Search和Catalog Service共同合作,提供高性能、相关且直观的搜索解决方案,让您的客户能够快速准确地找到所需的内容。 具体来说,Catalog Service显示您的SaaS服务的目录数据,如要使用的Live Search。

本文提供了使用Catalog Service实现Live Search的分步说明。

IMPORTANT
在网站搜索方面,Adobe Commerce会为您提供各种选项。 在实施之前,请务必阅读边界和限制,以确保Live Search适合您的业务需求。

受众

本文面向负责安装和配置Adobe Commerce实例的开发人员或团队中的系统集成商。

要求

支持的平台

  • Adobe Commerce on Cloud (ECE) :2.4.4+
  • Adobe Commerce内部部署(EE) :2.4.4+

工作流概述

从较高层面来看,加入Live Search要求您:

  1. 安装 Live Search扩展
  2. 配置 API密钥
  3. 同步您的目录数据
  4. 验证是否已导出目录数据
  5. 配置数据
  6. 测试连接
  7. 验证事件是否正在捕获数据
  8. 自定义您的店面

1.安装Live Search扩展

Live Search是通过ComposerAdobe市场安装为扩展的。 安装和配置Live Search后,AdobeCommerce开始与SaaS服务共享搜索和目录数据。 此时,管理员 ​用户可以设置、自定义和管理搜索Facet、同义词和促销规则。

NOTE
截至Live Search 3.0.2,Catalog Service扩展已与Live Search安装捆绑在一起。
  1. 确认cron作业索引器正在运行。

    note important
    IMPORTANT
    由于Elasticsearch7将于2023年8月宣布终止支持,建议所有Adobe Commerce客户迁移到OpenSearch 2.x搜索引擎。 有关在产品升级期间迁移搜索引擎的信息,请参阅​_升级指南_​中的迁移到OpenSearch
  2. Adobe市场下载live-search包。

  3. 从命令行运行以下命令:

    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服务在后台同步目录数据和索引产品。

  4. 运行以下命令:

    code language-bash
    bin/magento setup:upgrade
    
  5. 验证以下索引器是否设置为“按计划更新”:

    • 产品信息源
    • 产品变型馈送
    • 目录属性信息源
    • 产品价格信息源
    • 范围网站数据馈送
    • 范围客户组数据馈送
    • 类别信息源
    • 类别权限信息源
  6. 如果您正在新的Commerce实例上安装Live Search,则您已完成,可以跳至2。 配置API密钥部分。 如果您要将Live Search安装到现有Commerce实例,请继续执行下一步。

  7. 运行以下命令以启用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测试版

IMPORTANT
以下功能处于测试阶段。 要参与测试版,请向commerce-storefront-services发送电子邮件请求。

此测试版支持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”的响应。 但是,包含搜索会返回“或蚂蚁”的响应。

这些新条件增强了搜索查询过滤机制以细化搜索结果。 这些新条件不会影响主搜索查询。

您可以在搜索结果页面上实施这些新条件。 例如,您可以在页面上添加新部分,购物者可以进一步细化其搜索结果。 您可以允许购物者选择特定的产品属性,如“制造商”、“部件号”和“说明”。 从该位置,他们使用containsstartsWith条件在这些属性中搜索。 有关可搜索的属性的列表,请参阅管理员指南。

  1. 要安装测试版,请将以下依赖关系添加到您的项目中:

    code language-bash
    composer require magento/module-live-search-search-types:"^1.0.0-beta1"
    
  2. 提交更改并将更改推送到composer.jsoncomposer.lock云项目。 了解更多

    此测试版在管理员中为​ AutocompleteContains ​和​ Starts with ​添加​ Search types ​复选框。 它还更新了productSearch GraphQL API以包含这些新搜索功能。

  3. 在管理员中,将产品属性设置为可搜索,并指定该属性的搜索功能,如​ 包含(默认值)或​ 开头为。 您最多可以为​ Contains ​指定6个要启用的属性,为​ Starts with ​指定6个要启用的属性。 对于测试版,请注意,管理员不强制执行此限制,但会在API搜索中强制执行。

    指定搜索功能

  4. 请参阅开发人员文档,了解如何使用新的containsstartsWith搜索功能更新Live Search API调用。

字段描述

字段
描述
Autocomplete
默认启用,无法修改。 通过Autocomplete,您可以在搜索筛选器中使用contains。 此处,contains中的搜索查询返回自动完成类型的搜索响应。 Adobe建议您使用此类型的搜索来搜索描述字段,这些字段的长度通常超过50个字符。
Contains
启用真正的“字符串中包含的文本”搜索,而不是自动完成搜索。 在搜索筛选器中使用contains。 有关详细信息,请参阅限制
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服务进行初始同步。

WARNING
当数据已编制索引并同步时,店面中无法使用搜索和类别浏览操作。 根据目录的大小,从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_productscatalog_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+,则必须手动启用产品列表小组件。

  1. 从​ 管理员,转到​ Stores > Settings>Configuration

  2. 在​ Live Search ​下,选择​ Storefront Features

  3. 将​ Enable Product Listing Widgets ​设置为Yes

    启用产品列表小组件

更改此配置时,将显示消息Page cache is invalidated。 您需要刷新Magento缓存以保存更改。

  1. 通过执行以下操作之一访问缓存管理页:

    • 单击工作区上方消息中的​ Cache Management ​链接。
    • 在​ 管理员 ​侧边栏上,转到​ System > Tools>Cache Management
  2. 选择​ 配置 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文件:

  1. 如果当前安装的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
    
  2. 打开根composer.json文件并搜索magento/live-search

  3. require部分中,更新版本号,如下所示:

    code language-json
    "require": {
       ...
       "magento/live-search": "^4.0",
       ...
     }
    
  4. 保存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
允许商家配置其针对分面、同义词、查询规则等的搜索设置,并提供对只读GraphQL游乐场的访问权限,以测试来自​ 管理员 ​的查询。
module-live-search-adapter
将搜索请求从店面路由到Live Search服务,并在店面中呈现结果。
— 类别浏览 — 将请求从店面顶部导航路由到搜索服务。
— 全局搜索 — 将请求从店面右上角的快速搜索框路由到Live Search服务。
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小组件支持以下语言:

语言
区域
语言代码
Magento区域设置
保加利亚语
保加利亚
bg_BG
bg_BG
加泰罗尼亚语
西班牙
ca_ES
ca_ES
捷克语
捷克共和国
cs_CZ
cs_CZ
丹麦语
丹麦
da_DK
da_DK
德语
德国
de_DE
de_DE
希腊语
希腊
el_GR
el_GR
英语
英国
en_GB
en_GB
英语
美国
en_US
en_US
西班牙语
西班牙
es_ES
es_ES
爱沙尼亚语
爱沙尼亚
et_EE
et_EE
巴斯克语
西班牙
eu_ES
eu_ES
波斯语
伊朗
fa_IR
fa_IR
芬兰语
芬兰
fi_FI
fi_FI
法语
法国
fr_FR
fr_FR
加利西亚语
西班牙
gl_ES
gl_ES
印地语
印度
hi_IN
hi_IN
匈牙利语
匈牙利
hu_HU
hu_HU
印尼语
印度尼西亚
id_ID
id_ID
意大利语
意大利
it_IT
it_IT
朝鲜语
韩国
ko_KR
ko_KR
立陶宛语
立陶宛
lt_LT
lt_LT
拉脱维亚语
拉脱维亚
lv_LV
lv_LV
挪威语
挪威博克马尔语
nb_NO
nb_NO
荷兰语
荷兰
nl_NL
nl_NL
波兰语
波兰
pl_PL
pl_PL
葡萄牙语
巴西
pt_BR
pt_BR
葡萄牙语
葡萄牙
pt_PT
pt_PT
罗马尼亚语
罗马尼亚
ro_RO
ro_RO
俄语
俄罗斯
ru_RU
ru_RU
瑞典语
瑞典
sv_SE
sv_SE
泰语
泰国
th_TH
th_TH
土耳其语
土耳其
tr_TR
tr_TR
中文
中国
zh_CN
zh_Hans_CN
中文
台湾
zh_TW
zh_Hant_TW

如果构件检测到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支持

Live Search支持B2B功能及其他限制

PWA支持

Live Search适用于PWA Studio,但用户可能看到与其他Commerce实现略有不同。 在威尼亚省可以使用搜索和产品列表页面等基本功能,但Graphql的某些排列可能无法正常工作。 此外,可能存在性能差异。

  • 当前Live Search的PWA实现需要比Live Search更多的处理时间来返回搜索结果(使用本机Commerce店面)。
  • PWALive Search不支持事件处理。 因此,搜索报表和智能促销在PWA店面中不起作用。
  • 使用PWA Studio时,GraphQL不支持直接筛选descriptionnameshort_description,但是这些字段可以通过更一般的筛选器返回。

要将Live Search与PWA Studio一起使用,集成商还必须:

  1. 安装livesearch-storefront-utils

  2. 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限制

recommendation-more-help
1d60634e-b73a-404a-be7a-4a2a36676055