搜索分面

本页介绍了一些分面功能以及如何使用这些功能。

本部分提供了一些与分面相关的术语的基本定义和说明:

  • 分面:用于执行分面搜索的分面规范。 它们通过过滤结果来帮助用户找到所需内容。例如,如果用户搜索 shoes,则可能会返回以下一些方面:priceattributes.departmentattributes.colorsattributes.size

  • 系统属性:预定义的系统属性是现有的商品字段,可提供有关商品的更多信息。其中包括一些预定义的产品属性,例如 brandavailabilitycolorsize

  • 自定义属性自定义属性是您使用 Product.attributes 字段定义的额外属性。例如,这可能包括 stylecolordepartment

  • 分面键:这是分面的名称。例如,可以是 attributes.departmentsizes。分面键与属性名称相对应。例如,(商品)系统属性名称 sizes 对应于分面键 sizes。同样,(商品)自定义属性名称 department 对应于过滤条件键 attributes.department(对于自定义属性,系统会在自定义属性名称中添加前缀 attributes. 以获得过滤条件键)。属性名称、Facet 键和 Facet 名称这三个术语可以互换使用。

  • Facet value: For textual keys, this is one of the textual values of a facet. 例如,文本型分面键 brands 可以具有 AsicsNike 等文本值。对于数值键,分面值是一个区间。例如,数值型搜索条件键“价格”的区间可以采用 [20, 30) 形式。

  • 属性或 Facet 的类型:可以是文本类型,也可以是数值类型。

  • 固定分面:这是您在请求中使用 FacetSpec 传递的分面,并带有选项 enableDynamicPosition=false。分面应按其原始顺序显示在响应中的所有动态分面之前。

  • 动态分面:这些是搜索在侧边显示的排名分面。它们要么通过选项 enableDynamicPosition 在请求中传递,要么根据搜索模型进行提取。=true然后,这些结果会由同一组训练好的模型进行排名,最相关的结果会排在最前面。

  • 可构面、动态构面或可平铺:为属性启用动态构面后,搜索功能可以根据过去的用户行为(例如构面点击和视图)自动将此属性用作动态构面。如需为特性启用动态构面,您还必须为该特性启用编入索引

  • 过滤条件过滤条件语法由一种表达式语言组成,用于根据要过滤的商品的一个或多个字段构造谓词。例如,如果用户与分面键 attributes.brands 的分面值 Asics 互动,则过滤条件的一部分可以是 (attributes.brands:ANY(\"Asics",\"Nike\"))。过滤条件表达式区分大小写。如需详细了解此过滤条件,请参阅此用户指南

动态分面和图块简介

服务配置启用动态构面后,搜索可自动根据过去的用户行为(例如构面点击和视图)将属性用作此配置的搜索结果中的动态构面和图块。动态构面可以通过选项 enableDynamicPosition=true 在请求中传递,也可以根据搜索模型进行提取。然后,这些结果会由同一模型进行排名,最相关的结果会显示在顶部。

默认情况下,大多数分面键都是可分面的。API 中的动态构面设置可被 Search for Commerce 控制台中的网站级特性控件覆盖,但仅限于您选择的某些特定构面键。换句话说,如果您希望某些分面键不可分面,则需要在 Attribute controls 标签页中为每个此类键停用动态分面。如需了解详情,请参阅管理网站级特性控件

请注意,动态构面和功能块可以根据准确的商品目录数据创建。不过,要使该功能以适合您网站的最佳方式运行,构面模型需要学习您网站上的活动。为此,您需要准确设置搜索事件上传中的查询、类别和过滤字段。

如果您的任何投放配置均未启用动态分面和功能块,而您刚刚在某个投放配置中启用了动态分面和功能块,则预计需要等待 3 到 4 天,这些功能才会生效。

属性配置如何影响分面外观

为了有效地控制向购物者展示分面的方式和时间,您必须了解目录的属性配置与 Vertex AI Search for Commerce 分面行为之间的关系。商品详情的外观主要由两项特性设置控制:可编入索引和动态商品详情。

可编入索引的选项作为前提条件

特性要显示为构面(无论是静态还是动态),必须先配置为可编入索引

  • 系统属性:预定义的系统属性(例如 brandavailabilitycolorsize)默认可编入索引,并且此设置无法停用。
  • 自定义属性:自定义属性(例如 store_namestyle)默认可编入索引,但您可以选择停用此设置。

静态或动态商品详情外观

如果某个属性可编入索引,那么它在搜索结果中的显示方式取决于它是以静态方式还是动态方式请求的:

  • 静态分面:这些分面之所以会显示,是因为您在 SearchRequest 中使用 facetSpecs 字段明确请求了它们。只要所请求的属性可编入索引,分面就会与搜索结果一起返回。
  • 动态构面:这些构面会根据过去的用户行为(例如构面点击和视图)以及与特定搜索查询的相关性自动显示。如需使属性动态显示,必须为该属性启用动态分面和平铺选项,并且投放配置也必须启用动态分面。

文本和数值分面行为

属性的数据类型会显著影响其作为过滤条件的显示方式:

  • 文本属性:动态分面仅原生支持文本属性(例如 Color: Red)。
  • 数值属性:动态分面功能本身不支持数值属性。如需针对数值属性(例如 Price)进行分面,您必须执行以下任一操作:
    • 将它们作为静态分面传递,并在搜索请求中明确定义 intervals(分桶),例如 $0-$50$50-$100
    • 在数据流水线中将数值属性转换为文本属性(例如,将价格区间存储为字符串),并将其作为自定义属性注入,以使用动态分面。

属性配置和分面的限制

在设计搜索和分面浏览体验时,请注意以下系统限制和行为限制。

配置和目录限制

  • 属性数量上限:您可以在 AttributesConfig 请求中配置最多 1,000 个目录属性。
  • 生效时间(属性):对 IndexableSearchable 等属性设置所做的更改会在您下次导入目录后立即生效;如果通过 API 进行更新,则会在 12-24 小时内生效。
  • 生效时间(动态商品详情):对 Dynamic Faceting 开关的更改或首次向投放配置添加动态商品详情可能需要 2 到 4 天才能生效。

搜索请求和响应限制

  • 每个请求的分面数量上限:单个搜索请求中最多可包含 200 个 FacetSpec 对象。
  • 每个分面的值数量上限:单个分面最多可返回 300 个值(默认值为 50)。
  • 时间间隔上限:您可以为单个数值型分面定义最多 40 个时间间隔(区间)。
  • 前缀和包含:使用 prefixescontains 过滤分面值时,最多只能使用 10 个字符串。
  • 受限值:使用 restrictedValues 限制返回的分面时,最多可以指定 20 个值。

数据量要求

为了让动态商品详情发挥最佳效果并显示最相关的商品详情,您提取的搜索用户事件中必须至少有 10% 包含受支持的过滤条件语句。

商品详情控件

本部分介绍了如何创建不同类型的分面控件,其中许多控件还控制着平铺行为:

除非另有说明,否则 Vertex AI Search for commerce 会对所有这些分面控件执行区分大小写的匹配。

如需控制特定分面值和图块行为,请前往“Search for commerce”控制台中的分面控件标签页。

转到“控件”页面

点击创建控件以修改从搜索返回的分面。系统会打开创建控制变量窗格。点击控制变量类型字段以打开下拉菜单,从中选择控制变量类型。每个图标都会打开一个对话框,其中包含用于控制各个方面的选项。所有分面控件类型都需要至少提供属性信息,但每种形式所需的信息略有不同。

替代文本

创建“忽略分面和图块值”控件

如果您想针对某些特定的分面和图块键移除一些不需要的分面和图块值,请创建忽略分面和图块值控件。

此控件可用于清除不需要的分面和图块值,例如 NANot_applicable。不过,如果您在 10 月份,它也可用于消除季节性趋势,例如 Easter

如需创建忽略分面和图块值的控件,请执行以下操作:

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择忽略分面和图块值

  4. 指定属性名称。

    例如,brands 表示系统属性。对于自定义属性,名称以 attributes. 开头,例如 attributes.departmentattributes.colors

  5. 可选:指定开始时间和/或结束时间

  6. 将一个或多个属性值指定为忽略值

    例如,NANot_applicableEaster

  7. 点击提交

创建“替换分面和图块值”控件

如果您想将多个类似的分面和图块值整合为一个术语,请创建“替换分面和图块值”控件。

替换分面和图块值有时也称为合并分面和图块值

为避免冲突和无用的映射,如果属性值 facet_value_1 被另一个属性值 facet_value_2 取代,则后者不能再被其他属性值取代。例如,如果您将 ruby 替换为 dark red,则之后无法再将 dark red 替换为 red

对于每个属性名称,属性值在替换值字段中不应出现多次。

如需创建用于替换分面和值的控件,请执行以下操作:

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择替换分面和图块值

  4. 指定属性名称。

    此功能仅适用于以 attributes 为前缀的自定义属性,例如 attributes.departmentattributes.colors

  5. 将一个或多个属性值指定为替换值 - 例如,REDReddark redbright redrubycrimson

    一个属性值只能在替换值字段中出现一次。

  6. 将单个属性值指定为替换字词 - 例如 red

  7. 点击提交

虽然替换后的值可能会很快消失,但替换字词最多可能需要四天才会显示。

当替换分面值控件生效时,如果响应中返回了分面键(在本例中为 attributes.colors),则替换后的分面值(例如 dark redcrimson)将不会作为分面值存在。它们会被替换为替代术语(例如 red)。

创建合并的方面控件

最好在将商品提取到 Google 搜索的数据库之前,在您的网站上正确设置商品自定义属性名称和值。不过,如果您无法更改自定义属性名称,可以创建合并的方面控件。如果您想将一个分面与另一个分面合并(替换),可以创建合并分面控件。例如,您可能拥有多个颜色自定义分面键,如 attributes.colors_jeansattributes.colors_clothesattributes.colors_hue,并且想要将它们替换为名为 attributes.colors 的现有自定义分面键。

最好是,合并的键应:

  • 永久且不会更改类型的自定义属性名称。
  • 许多已提取商品的属性名称。

如果您删除合并后的键,则会丢失其互动数据,而这些数据用于训练动态分面模型。

在为每个商品编制索引期间,系统会将键和合并后的键都作为属性名称纳入其中,除非您超出每个商品允许的最大属性数量。如果属性数量上限超过了每个商品允许的配额,搜索会任意截断合并后成为属性名称的键。

例如,如果您已为特定商品设置了最大数量的自定义属性名称,并且其中一个自定义属性名称为 colors_jeans,假设您使用合并分面控件将 attributes.colors_jeans 合并到 attributes.colors 中。在这种情况下,系统不会将属性名称 colors 添加到相应特定产品,因为该产品包含的每个产品的自定义键数量已达到上限。合并后的键不会从商品的(自定义)属性名称中删除,但也不会作为动态分面键返回。同样,如果您合并了多个具有相同键的键,导致合并后的键的属性值数量超过允许的属性值数量上限,搜索会任意截断属性值。

如需创建将一个方面合并到另一个方面的控制变量,请执行以下操作:

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择合并分面

  4. 指定一个有效的自定义分面键,该键会合并到另一个分面键中。

    此功能仅适用于以 attributes 为前缀的自定义属性,例如 attributes.colors_clothesattributes.colors_jeans

  5. 指定有效的自定义分面键作为合并键。

  6. 点击提交

此控制措施通常会在 2-4 天内生效。

创建一组数字区间控件

借助“设置数值区间”控件,您可以确定数值分面或分桶的区间,而不必接受系统计算的区间。

例如,搜索可能会为自定义数值分面键 attributes.monitor_size 计算区间 [10,15)、[15,20)、[20,25)、[25,30)、[30,40)、[40,50) 和 [50,infinity)。不过,您可能更喜欢以下区间:[0,14)、[14,17)、[17,21)、[21,24)、[24,27)、[27,32) 和 [32,infinity)。

计算出的间隔和设置的间隔简介

对于所有数值自定义属性以及数值系统属性 priceratingratingCount,搜索会根据每个属性的所有(数值)属性值的分布情况,计算出一些具有舍入边界的区间。您还可以在请求中指定一些时间间隔。作为最后一种选择,您可以使用以下设置数值区间控件,为每个数值型多面搜索键设置自己的区间。

以下是确定使用哪些间隔的优先级顺序:

  1. 首先,如果请求中为数值型分面键指定了某些区间,则保留这些区间。

  2. 否则,如果数值型分面键是动态的,或者在请求中传递时没有区间,那么您使用设置数值区间控件添加的区间(如果这些区间不为空)会添加到该数值型分面键中。

  3. 否则,系统会添加前面提到的具有舍入边界的计算区间。

创建控制变量

如果您想为数值型分面和分块键指定自己的区间,而不是使用 Vertex AI Search for Commerce 为您计算的区间,请创建一组数值区间控件。

如需创建用于添加间隔的控件,请执行以下操作:

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择设置数值分面和分桶区间

  4. 指定数值属性的名称。

    例如,price 表示系统属性。对于自定义属性,名称以 attributes. 开头,例如 attributes.number_of_pieces

  5. 请至少指定最小值最大值。如果同时指定了这两个值,则最小值不得大于最大值。您可以选择每个边界是包含还是不包含

  6. 如需添加更多间隔,请点击 添加间隔。区间的数量上限为 40。

  7. 点击提交

创建用于移除分面和图块的控件

通过移除分面控件,您可以从动态分面中移除特定分面和图块键。根据一些给定的搜索字词或网页类别移除分面和图块键。

此方面控制类型用于控制属性本身。如果应用此分面控件类型,则搜索结果中不会返回与此分面相关联的任何分面或作为成员的平铺。

如果您想针对某些搜索查询字词或浏览内容移除某些分面和板块键,此控件会非常有用。例如,您可以使用此控件移除查询 shoes 的分面键 attributes.shoe_size

您可以使用 Merchandising 控制台或 Google Cloud 控制台移除功能块或板块:

商品管理控制台

  1. 点击管理员提供的网址。Sign in(登录)。

    系统随即会转到商品推介控制台中的控制页面。

  2. 点击 创建控制变量

  3. 确定最终用户的目标和所需的时间。必须回答所有问题。点击下一步

  4. 选择一个控件。输入控件的名称,选择 Search 产品,然后选择控件类型 Remove facets

  5. 配置移除分面控件:

    1. 触发条件下,通过为相关搜索查询提供条件(例如包含不在范围内),定义哪些目录属性会触发此控制变量。如果未配置任何目录属性,此控件将始终适用。

    2. 通过输入日期范围来定义适用时间范围。如果满足指定的任一时间范围,则在指定的任一时间范围内,目录属性将与查询匹配。使用 添加时间范围添加时间范围。

    3. 移除分面操作部分下,为不想在动态分面中显示的属性定义要忽略的属性,这些属性对应于上一个触发器部分下指定的搜索字词。

    4. 点击 class="material-icons">add_box添加属性,以添加更多属性。

  6. 点击提交,将控制权请求提交给审批者。您将能够在 Merchandising Console 中查看已提交请求的状态。如果您改变了主意,可以删除控制请求。

Cloud 控制台

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件。系统会打开创建控制变量窗格。

  3. 选择移除分面和图块

  4. 每项控制设置都适用于搜索或浏览,但不能同时适用于这两者。执行以下任一操作:

    • 对于搜索查询,请点击搜索,然后指定一些部分查询字词或一些要匹配的确切查询字词。如需了解详细信息,请参阅查询条款条件。无论哪种情况,查询字词都需要小写。例如,您可以指定部分查询字词 shirtspolojacketst-shirtfall coats,如果小写查询是这些查询字词之一,或者包含这些查询字词中的任何一个作为一元语法,则接下来指定的分面键不会显示为动态分面。

    • 对于浏览,请点击浏览类别,然后指定一些网页类别。您可以指定类别或部门的列表(最多 10 个条目)。格式应与用户事件网页类别相同。例如,它可以是 page_categoriesSales > 2023 Black Friday Deals。如果后者与事件(针对浏览)中传递的某个网页类别完全匹配(区分大小写),则接下来指定的方面键不会显示为动态方面。

  5. 要忽略的属性中指定至少一个有效的分面键。

  6. 点击提交

创建强制返回分面控件

如果您已为分面投放配置启用动态分面,则强制返回分面控制会影响特定查询或浏览事件的动态分面键的列表位置或顺序。

如果您想针对某些搜索字词或浏览强制使用动态分面中的特定分面键,则强制返回分面控件非常有用。例如,您可以使用此控件强制使分面键 brands 在查询 handbags 的位置 10 或更小的位置显示。如果分面 brands 已位于相应查询的动态分面的前 10 名中,则不应有太大变动。如果该类别不在前 10 名中或不在动态分面列表中,则应移至第 10 位左右。

您可以在 Merchandising 控制台或 Google Cloud 控制台中创建用于强制返回分面的控件。

商品管理控制台

  1. 点击管理员提供的网址。Sign in(登录)。

    系统随即会转到商品推介控制台中的控制页面。

  2. 点击 创建控制变量

  3. 确定最终用户的目标和所需的时间。必须回答所有问题。点击下一步

  4. 选择一个控件。输入控件的名称,选择搜索浏览产品,然后选择控件类型 Force return facets

  5. 配置强制返回分面控制:

    1. 触发条件下,通过为相关搜索查询提供条件(例如包含不在范围内),定义哪些目录属性会触发此控制变量。如果未配置任何目录属性,此控件将始终适用。

    2. 通过输入日期范围来定义适用时间范围。如果满足指定的任一时间范围,则在指定的任一时间范围内,目录属性将与查询匹配。使用 添加时间范围添加时间范围。

    3. Force return facets actions 部分下定义 Attribute position adjustment。您可以在此处选择要包含在动态分面或动态板块中的属性,以用于您在上一个触发条件部分中设置的查询或网页类别。例如,选择位置 5 会将相应分面设置为显示在页面底部往上数第五个位置或更高位置。

    4. 点击 添加调整,以添加更多受此控制措施约束的属性。

  6. 点击提交,将控制权请求提交给审批者。您将能够在 Merchandising Console 中查看已提交请求的状态。如果您改变了主意,可以删除控制请求。

Cloud 控制台

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择强制返回分面

  4. 每项控制设置都适用于搜索或浏览,但不能同时适用于这两者。执行以下任一操作:

    • 对于搜索查询,请点击搜索,然后指定一些部分查询字词或一些要匹配的确切查询字词。如需了解详细信息,请参阅查询条款条件。无论哪种情况,查询字词都需要小写。例如,您可以指定部分查询字词 shirtspolojacketst-shirtfall coats,如果小写查询是这些查询字词之一,或者包含这些查询字词中的任何一个作为一元语法,则接下来指定的分面键应显示在动态分面中相应位置附近或更靠前的位置。

    • 对于浏览,请点击浏览类别,然后指定一些网页类别。您可以指定类别或部门的列表(最多 10 个条目)。格式应与用户事件网页类别相同。例如,它可以是 page_categoriesSales > 2023 Black Friday Deals。如果后者与事件(针对浏览)中传递的某个网页类别完全匹配(区分大小写),则接下来指定的过滤条件键应显示在动态过滤条件中相应位置附近或更靠上的位置。

  5. 指定有效的分面键和介于 1 到 100(含)之间的整数位置。

  6. 如果您想指定多个分面键,请点击 添加调整,然后重新执行上一步。

  7. 点击提交

创建重新排名动态分面控件

动态构面排名取决于查询(搜索)或网页类别(浏览)。通过“重新排名动态分面”控制变量,排名还可以取决于用户互动的某些分面值。

例如,使用此控制变量时,如果用户在搜索或浏览后选择了构面键 attributes.department 的构面值 watches,则排名也会取决于构面值 watches。您可以按构面键指定要重新排名的构面值,也可以仅指定构面键,并对该构面的所有构面值进行重新排名。

如需创建用于对动态分面重新排序的控件,请执行以下操作:

  1. 前往 Search for commerce 控制台中的“控件”页面。

    转到“控件”页面

  2. 分面控件标签页上,点击 创建控件

    系统会打开创建控制变量窗格。

  3. 选择对动态分面重新排序

  4. 指定有效的自定义文本型分面键(所有自定义键都带有前缀 attributes.)。

  5. 您可以指定一些特定的分面值,也可以应用于所有分面值。

    • 如果您想根据所有分面值重新排名,请点击 任何值变化

    • 如果您想根据特定分面值重新排名,请点击所选值发生变化。 然后,插入您想要重新排名(区分大小写)的所有分面值。例如,可以是 watchesluggagesbed

  6. 点击提交

您需要传递用户在请求中互动的所有分面键,原因如下:

  • 假设用户浏览促销商品,并看到第一份呈现的方面键列表。
  • 然后,用户先与功能键 attributes.age_group 互动。
  • 接下来,他们将使用分面键 attributes.department 和分面值 watches,您需要设置一个控制变量来重新排名。

此时,搜索会重新对密钥进行排名。

因此,之前参与的方面键 attributes.age_group 可能不会在响应中返回。如果您在请求中传递此密钥(使用 Facetspec,并将 enableDynamicPosition 字段设置为 true),系统会自动在响应中返回此密钥。

不过,搜索可能会在位置 27 返回该键,而您可能只向用户显示前 20 个键。因此,请确保向用户显示这些用户之前互动过的密钥。如果您不想向用户显示过多的键,可能需要在响应中过滤掉一些中间的未参与键。