Cloud Search 的自动补全功能可为用户提供建议字词 当用户输入搜索查询时触发。例如,建议的字词可能是 从文档标题、搜索运算符、搜索运算符值或名称 电子邮件地址。
自动补全功能会从已编入索引的文档标题中提取词组,并使用
n-gram 模型,
确定要使用 Suggestion API 提供的建议。默认情况下,词组来自
文档标题会显示在自动补全功能中。您还可以标记文本和枚举
架构属性为 is_suggestable
,以自动补全相应属性
名称和值。
建议 API 检查搜索查询,以获取有关查询语言、
例如英语或西班牙语,并相应地对结果进行优先级排序。通过
languageCode
字段
还会用于改进针对特定语言的建议。
示例场景
例如,假设您有以下数据源,其中包含有关 电影:
- 该数据源包含 2 个文档。
- 每个文档都有一个标题 (
ItemMetadata.title
) 和两个属性:genre
和characters
。 - 第一份文档的标题为“Avengers Infinity War”,
genre=science fiction
和characters=Iron Man, Hulk
- 第二个文档的标题为“Harry Potter”
genre=Adventure, Fantasy and
characters=Hermione, Harry Potter`
图 1 说明了如何从 文档标题、属性和属性值。
![两个文档和生成的 N 元语法词组](https://developers.google.cn/static/cloud-search/images/autocomplete.png?hl=zh-cn)
我们从文档 1 中提取“Avengers”、“Infinity”、“War”和 《复仇者联盟:无限战争》《无限战争》《复仇者联盟:无限战争》。 同样,从文档 2 中,我们生成“Harry”“Potter”“Harry Potter”。
在查询此数据源时,假设用户首先输入“h”。通过 显示如下建议:
- Harry
- Hermione
- Hulk
- Harry Potter
假设用户选择了自动填充建议“Hermione”,然后 字符“a”。显示的自动补全建议 会是:
- Hermione Adventure
- Hermione Action
- Hermione Avengers
自动补全功能会尝试补全输入的最后一个字词(或 N 元语法词组)。 在前面的示例中,该宏只是扩展了“a”“冒险”“动作”和 “复仇者联盟”因为没有以“hermione a”开头的文本。这个 该建议称为尾部建议仅自动填充最后一个字词/N 元语法 。
Cloud Search 的自动补全功能最多会返回 5 条建议 来自文档内容和 2 人建议。
默认情况下,文档标题中所含的短语会以自动填充方式显示。架构
属性必须明确标记为 is_suggestable
,建议 API 才能
自动填充相应的属性名称和值。
与 Autocomplete API 集成
如果您使用的是默认搜索应用或嵌入式搜索
微件,则系统原生支持 Cloud Search 的自动补全功能
而无需您执行任何其他操作默认情况下,请记住
商品名称在自动补全功能中显示。架构属性必须明确标记为
is_suggestable
,用于建议 API 自动补全相应属性
名称和值。
如果你要构建自定义搜索应用
可通过查询 /query/suggest
API 端点获得。
限制
自动填充功能具有以下限制:
使用
FilterOptions
不支持,除非以下内置 过滤条件:objectype
、mimetype
和类型过滤条件。基于查询历史记录的建议(用户以前在 搜索应用)不受支持
最多可将 20 个属性标记为
is_suggestable
。此限制 。以下属性不支持自动补全搜索运算符:
exact_match_with_operator
。Cloud Search 的自动补全功能最多会返回 5 条建议 来自文档内容和 2 人建议。
Cloud Search 的自动补全功能只会提供建议中的词组 用户有权访问的文档