Google Cloud Search 的自动填充功能会在用户输入搜索查询时提供字词建议来帮助用户。例如,建议内容可能包含文档标题中包含的字词、搜索运算符或 Google Workspace 组织中的名称。
自动填充功能会从已编入索引的文档的标题中提取词组,并使用一
N 元语法模型确定要使用 Suggest API 提供的建议
。默认情况下,自动填充功能会显示文档标题中的词组。您还可以将文本和枚举架构属性标记为 is_suggestable,以自动补全属性名称和属性值。
Suggest API 会检查搜索查询中是否有语言提示(例如英语或西班牙语),并对结果进行优先排序。请求中的
languageCode
字段也有助于改进特定于语言的建议。
示例场景
假设有一个包含影片数据的数据源:
- 该数据源包含两个文档。
- 每个文档都有一个标题 (
ItemMetadata.title) 和两个属性:genre和characters。 - 文档 1 标题:“Avengers Infinity War”;
genre=science fiction;characters=Iron Man, Hulk。 - 文档 2 标题:“Harry Potter”;
genre=Adventure, Fantasy;characters=Hermione, Harry Potter。
图 1 演示了自动填充功能如何提取建议。
从文档 1 中,该模型提取以下 N 元语法(最多为 3 元)词组:“Avengers”“Infinity”“War”“Avengers Infinity”“Infinity War”“Avengers Infinity War”。 从文档 2 中,该模型提取“Harry”“Potter”“Harry Potter”词组。
如果用户在查询此数据源时输入“h”,则可能会看到以下建议:
- Harry
- Hermione
- Hulk
- Harry Potter
如果用户选择“Hermione”,然后输入“a”,则自动填充功能可能会显示:
- Hermione Adventure
- Hermione Action
- Hermione Avengers
自动填充功能会尝试填充输入的最后一个字词或 N 元语法词组。在此示例中,由于没有以“hermione a”开头的已编入索引的文本,因此自动填充功能会将“a”扩展为“adventure”“action”“avengers”。这是一个尾部建议。
Cloud Search 的自动填充功能最多可从文档内容中返回 5 条建议,以及 2 条人工建议。
默认情况下,自动填充功能会显示文档标题中的词组。您必须明确将架构属性标记为 is_suggestable,这样 Suggest API
才能自动填充属性名称和属性值。
与 Suggest API 集成
如果您使用的是默认搜索应用或可嵌入的搜索微件,则 Cloud Search 具备原生自动填充功能。请记得将架构属性标记为
is_suggestable,以便自动填充这些属性。
如要构建自定义搜索应用,可通过使用 /query/suggest API 端点来实现自动填充功能。
限制
自动填充功能具有以下限制:
- 不支持使用
FilterOptions限制自动填充词组,但内置过滤条件(例如objecttype和mimetype)除外。 - 不支持基于用户查询历史记录的建议。
- 您最多可以将 20 个属性标记为
is_suggestable。如需提高此限制,请与 Cloud Search 支持团队联系。 - 具有
exact_match_with_operator的属性不支持自动填充搜索运算符。 - 自动填充功能最多可返回 5 条文档内容建议和 2 条人工建议。
- 自动填充功能只会推荐用户有权访问的文档中所含的短语。