自动补全搜索

本页介绍了自动补全功能及其使用方法。 Google 搜索提供自动补全功能,可为零售商的搜索框预先输入建议提供支持。

自动补全是一项功能,用于预测用户正在输入的查询的其余部分,可以改善用户的搜索体验,并在结账前加快购物流程。它还可以通过提供格式规范的查询来提高搜索响应质量,从而创造更高的收入。

概览

当最终用户开始在您的网站上输入搜索字词时,搜索功能可以提供用户可能想要的建议列表。例如,当用户输入“sh”时,系统可能会建议“鞋子”和“衬衫”。

数据源

您可以为建议预测选择以下数据源之一:

  • 您上传的 BigQuery 数据集。
  • 一个使用机器学习技术基于用户事件和其他元数据生成的数据集。

上传的数据集

作为数据集上传的 BigQuery 建议表,用于提供查询建议。如需了解如何上传数据集,请参阅导入自动补全数据

自动学习数据集

基于机器学习的建议数据集,由搜索根据用户的搜索事件生成。

如需启用自动学习功能,请执行以下操作:

控制台

  1. 转到“控件”页面

  2. 转到自动补全控件标签。

  3. 点击修改设置

  4. 开启自动学习

  5. 点击保存设置

    自动学习模式可能需要 1-2 天才能完成更新。

cURL

curl -X PATCH -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://retail.googleapis.com/v2beta/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/completionConfig?update_mask.paths=auto_learning"  --data "{auto_learning: true}"

自动学习数据集的前提条件

自动学习功能会根据搜索类型用户事件eventType =“搜索”)生成建议。生成时会使用过去 180 天的用户事件。需要高质量和大量导入的用户事件。

自动学习功能会过滤掉罕见的建议,因此如果搜索类型的用户事件数量太少(少于 20,000 个),系统可能会过滤掉许多候选建议。在这种情况下,您可能需要先使用更频繁的搜索查询来测试自动补全功能。

自动学习数据集发布时间表

系统会每天生成自动学习数据集,然后将其推送到索引并发布。整个周期大约需要两天。

自动学习功能

Search 仅应用机器学习技术来清理自动学习数据集的查询和建议数据并设置其格式。

特征 说明 示例
移除特殊字符
  • 从建议数据和输入的查询中移除非标准字符。保留在建议数据和类型化查询中的标准字符为:%$&.(句点)
“World's best #*! milk” → “worlds best milk”
移除 0 条结果搜索结果
  • 移除未返回任何搜索结果的查询
对于杂货零售商,“Gucci 手提包”没有找到任何搜索结果,因此已被移除
更正错别字
  • 纠正拼写错误的字词
  • 在匹配之前,一并清理实时输入查询
“麦克风”→“牛奶”
添加许可名单查询
  • 系统会添加您明确允许的查询
请参阅下面的更多信息部分。
移除屏蔽名单查询
  • 系统会移除您明确屏蔽的查询
请参阅下面的更多信息部分。
移除不安全的字词
  • 由 Google 安全搜索提供支持
  • 移除不当查询
色情、少儿不宜、粗俗、暴力等
移除非常罕见的字词
  • AI 系统会根据查询统计信息调整截止时间
  • 如果字词出现异常罕见,系统会将其移除
“74x39x9 英寸 2 层双层充气床垫,配有 120V 手持泵”
删除重复字词
  • 依托 AI 驱动的语义理解
  • 对于几乎相同的字词,其中任一字词都将匹配,但只会建议比较热门的字词
系统会对“女鞋”“女式鞋”和“女鞋”进行去重,因此只会推荐其中一项。

获取补全建议

使用 completeQuery API 获取建议。示例:

cURL

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog:completeQuery?query=sho&dataset=user-data&deviceType=DESKTOP&maxSuggestions=5"

自动补全选项和控件

本部分介绍了哪些选项和控件可用于自动补全。 请参阅下表中的概览和下文中的更多详细信息。

控制措施 详情 位置
拒绝名单
  • 手动从建议数据中移除查询
API Request: CompletionData:import。如需了解详情,请参阅导入自动补全数据
列入许可名单
  • 手动向建议数据添加查询
API 请求:CompletionData:import(另请参阅导入自动补全数据
触发自动补全功能的时长下限
  • 控制在触发自动补全功能前的字符数
Cloud 控制台 > 控件
匹配顺序
  • 匹配顺序决定了用户查询和建议的匹配方式。
Cloud 控制台 > 控件
建议数量
  • 这是将通过自动补全功能返回的建议数量
Cloud 控制台 > 控件
API Request: completeQuery.maxSuggestions
设备类型
  • 指定设备类型后,系统会根据指定设备类型的热门程度生成建议
  • 如果不指定此属性,系统就会根据所有设备类型的平均热门程度返回建议
API 请求:completeQuery.deviceType
建议数据源
  • 如果您同时拥有自动生成的数据源和已上传的数据源,则可以在查询时选择要使用的数据源
API 请求:completeQuery.dataset
语言
  • 您可以指定建议采用哪种(些)语言
API 请求:completeQuery.languageCodes[]

许可名单(请勿移除名单)

搜索会对自动补全建议数据进行后期处理,例如拼写更正。您可以为进行后处理时搜索会跳过的字词创建许可名单。

系统绝不会从建议中过滤掉已列入许可名单的字词。该许可名单既适用于上传的数据集,也适用于自动学习数据集

示例:有一些有意拼错的品牌名称,例如“froot loops”而不是“fruit”或“foot”。请参阅导入补全数据中的详细上传说明。

对于数据导入,您可以使用 Cloud 控制台 > 控件 > 自动补全控件 > 请勿移除列表,也可以使用 CompletionData:import

所做更改会在大约 2 天内生效。

拒绝名单

拒绝名单仅适用于自动学习数据集。拒绝名单不适用于上传的数据集

拒绝名单中的字词绝不会出现在建议中。

如需导入拒绝名单,您可以使用 Cloud 控制台 > 控件 > 自动补全控件 > 拒绝列表,也可以使用 API CompletionData:import。如需详细了解如何导入拒绝名单,请参阅导入完成数据

所做更改会在大约 2 天内生效。

触发的最小长度

您可以设置在自动补全查询返回结果之前所需的字符数。如需找到此设置,请依次访问 Cloud 控制台 > 控件 > 自动补全控件 > 触发时长下限

更改会立即生效。

匹配顺序

这决定了如何将建议与用户输入字词进行匹配。

设置为“建议以字词开头”时,自动补全功能会将用户输入字词作为建议的确切前缀。例如,用户输入“sh”与建议“shoes”和“shirts”匹配,但与建议“red shoes”不匹配。

如果设置为“Suggestion can start from any in the terms”(建议可以从字词中的任何位置开始),自动补全功能会将用户输入的字词词元化为字词,并将其与建议中的字词进行匹配,无论词序如何。例如,用户输入字词“red sh”与建议“shirts red”“red shoes”和“kid red shoes”匹配。但是,输入字词“hoes”与这些建议不匹配,因为建议中没有以“hoes”开头的字词。

如需找到此设置,请依次访问 Cloud 控制台 > 控件 > 自动补全控件 > 匹配顺序

更改会立即生效。

建议数量

这是将从自动补全查询返回的建议数量,不能超过 20。您可以在 Cloud 控制台 > 控件 > 自动补全控件 > 建议数量中找到该设置,也可以在 completeQuery 中进行设置。

更改会立即生效。

设备类型

搜索自动补全功能支持不同的设备类型,例如 MOBILEDESKTOP。您可以根据设备类型上传或获取不同的建议。如果 completeQuery 中未指定 deviceType,则建议将适用于所有设备类型。

对于基于搜索用户事件的自动学习数据集,请在 UserEvent.user_info 中设置 user_agent 以支持不同的设备类型。请参阅 Wiki 中的用户代理

高级功能

本部分介绍了搜索中提供的高级自动补全功能。例如,您可以使用品牌和类别等其他建议对查询自动补全建议进行补充。

这些高级功能仅适用于自动学习数据集。

建议功能集

我们为每个查询建议字词提供了额外的 FeatureSet,以允许客户在其网站上显示高级功能。

FeatureSet 以键值对映射的形式显示在响应中。目前,适用于零售业的 Vertex AI Search 会在 completeQuery.completionResults.attributes API 响应中返回最多五个与每个查询建议相关的热门类别和品牌。FeatureSet 建议不必与最终用户输入的查询字符串匹配。

您可以使用响应中的 FeatureSet 来丰富搜索建议。例如:

  • 汇总并创建“热门品牌”和“热门类别”版块,这些版块会显示在搜索建议列表下方。
  • 在搜索建议字词旁边显示最热门的品牌或类别。

对清单进行更改(例如更改商品类别)后,预计需要等待两周到 30 天,直到 FeatureSet 建议反映商品清单更改。此等待时间是因为自动学习会使用过去 30 天的搜索事件数据进行训练。

属性建议

搜索会提供与用户输入字符串匹配的属性建议。支持的属性建议类型为品牌和类别。

属性建议与建议的 FeatureSet 不同。属性建议是建议的商品属性(如品牌和类别)列表,类似于查询建议是建议查询的列表。属性建议可独立于查询建议使用。建议 FeatureSet 是查询建议的元数据,因此依赖于查询建议。

属性建议可用于在搜索建议列表下方的单独部分中自动填充最终用户输入的品牌或类别。

包含商品数量的建议分面(实验性)

这是一项实验性功能,仅供部分客户使用。如需使用该工具,请与支持团队联系。

启用包含商品数量功能的建议分面后,返回的 completeQuery.completionResults 会照常提供自动补全建议列表,还会提供每条建议的商品计数以及按分面(如“颜色”“类别”)的总数和商品数量。

例如,如果搜索查询是“shoe”,返回的自动补全建议可能如下所示:

  • 女鞋
  • 男鞋

此外,如果感兴趣的分面键为“颜色”,则系统还会随每条自动补全建议返回商品数量和按颜色显示的商品数量:

  • 女鞋 (32)
    • 黑色 (10)
    • taupe(16 个)
    • 白色 (10)
  • 男鞋 (43)
    • 黑色 (10)
    • 棕色 (5)
    • 绿色 (17)

作为零售商,您无需向买家显示商品数量,但可能需要根据商品数量(而不是 completeQuery.completionResults 中返回的顺序)对建议列表进行排序。例如,您可能希望通过将绿色鞋子显示在建议框顶部来鼓励买家关注男士绿色鞋子(即使它们不是最受欢迎的商品)。

例如:

{
  "completion_results": [{ 
    "suggestion": "womens shoes"
    "facets": [ 
      {
        "key": "color"
        "values": [ 
          {
            "value": "black"
            "count": 10
          }
          {
            "value": "taupe"
            "count": 16
          }
          {
            "value": "white"
            "count": 10
          }
        ]
      }
    ]
    "total_product_count": 32
  },
  (...)
  ],
}

对于每个建议的搜索查询,分面计数信息以 Facets 列表的形式显示在 completeQuery.completionResults.facets 中。每个构面都有一个 FacetValues 列表,其中包含每个构面值的产品数量。每个建议的搜索查询的商品总数在 completeQuery.completionResults.totalProductCount 中返回。

如需启用和使用包含商品数量的建议分面,请按以下步骤操作:

  1. 与支持团队联系,让他们启用“包含商品计数的建议分面”功能。指定要为哪个 FacetKeys 统计商品数量。只允许添加 textual_fields 个分面。

  2. 至少在 7 天内,请确保在使用 search API 时,在 FacetSpecs 中添加分面键,并在 search.searchRequest.facetSpecs 中添加分面键。

    此等待时间是因为构面信息是使用过去一周的搜索记录数据计算的。

  3. 为您启用此功能后,completeQuery API 返回的建议将包含按商品详情和建议的商品数量。

已按实体过滤建议

借助实体,您可以过滤自动补全搜索建议。实体可能是其他品牌或区域的网站。您希望自动补全功能最能反映购买该特定品牌或区域性网站的用户的行为。如需详细了解实体,请参阅实体

如需将实体包含在自动补全建议中,请执行以下操作:

  1. 在搜索用户事件中添加 entity 字段 (eventType = "search")。如需了解详情,请参阅 Search 用户事件的完整对象示例。

  2. CompleteQuery API 请求中设置 entity 字段,可仅获取针对该实体的建议。

    用户事件和 API 请求中的实体字符串必须完全匹配。否则,自动补全功能会返回空的建议。

通常,需要 30-90 天的用户事件数据,实体功能才能返回最佳的自动补全建议。