- HTTP 请求
- 请求正文
- 响应正文
- 授权范围
- QueryInterpretationOptions
- QueryInterpretation
- QueryInterpretation.InterpretationType
- QueryInterpretation.Reason
- SearchResult
- Snippet
- MatchRange
- 元数据
- ResultDisplayMetadata
- ResultDisplayMetadata.ResultDisplayLine
- ResultDisplayMetadata.ResultDisplayField
- ResultDebugInfo
- StructuredResult
- SpellResult
- SpellResult.SuggestionType
- SafeHtmlProto
- FacetResult
- FacetBucket
- ResponseDebugInfo
- ErrorInfo
- ErrorMessage
- ResultCounts
- SourceResultCount
- 试试看!
Cloud Search 查询 API 提供了 search 方法,该方法可返回用户查询中最相关的结果。结果可能来自 Gmail 或 Google 云端硬盘等 Google Workspace 应用,也可能来自您从第三方编入索引的数据。
注意:此 API 需要使用标准最终用户账号才能执行。服务账号无法直接执行查询 API 请求;如需使用服务账号执行查询,请设置 Google Workspace 全网域授权。
HTTP 请求
POST https://cloudsearch.googleapis.com/v1/query/search
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
| JSON 表示法 |
|---|
{ "requestOptions": { object ( |
| 字段 | |
|---|---|
requestOptions |
请求选项,例如搜索应用和用户时区。 |
query |
原始查询字符串。如需查看支持的搜索运算符,请参阅使用运算符缩小搜索范围 |
pageSize |
一页中返回的搜索结果数上限。有效值介于 1 和 100 之间(含边界值)。默认值为 10。如果请求的结果超过 2000 个,则最小值为 50。 |
start |
结果的起始索引。 |
dataSourceRestrictions[] |
用于查询的来源。如果未指定,则使用当前搜索应用中的所有数据源。 |
facetOptions[] |
|
sortOptions |
用于对搜索结果进行排序的选项 |
queryInterpretationOptions |
用于解读用户查询的选项。 |
contextAttributes[] |
请求的上下文属性,将用于调整搜索结果的排名。元素数量上限为 10。 |
响应正文
搜索 API 响应。下一个 ID:19
如果成功,响应正文将包含结构如下的数据:
| JSON 表示法 |
|---|
{ "queryInterpretation": { object ( |
| 字段 | |
|---|---|
queryInterpretation |
用户查询的查询解释结果。如果停用查询解读,则为空。 |
results[] |
搜索查询的结果。 |
structuredResults[] |
用户查询的结构化结果。这些结果不计入 pageSize。 |
spellResults[] |
查询的拼写建议。 |
facetResults[] |
重复的构面结果。 |
hasMoreResults |
是否有更多与查询匹配的搜索结果。 |
debugInfo |
有关响应的调试信息。 |
errorInfo |
有关响应的错误信息。 |
resultCounts |
展开后的结果数量信息。 |
联合字段
在极少数情况下,如果系统无法搜索所有文档,请重新运行查询。 |
|
resultCountEstimate |
相应查询的估计结果数。 |
resultCountExact |
相应查询的确切结果数量。 |
授权范围
需要以下 OAuth 范围之一:
https://www.googleapis.com/auth/cloud_search.queryhttps://www.googleapis.com/auth/cloud_search
如需了解详情,请参阅授权指南。
QueryInterpretationOptions
用于解读用户查询的选项。
| JSON 表示法 |
|---|
{ "disableNlInterpretation": boolean, "enableVerbatimMode": boolean, "disableSupplementalResults": boolean } |
| 字段 | |
|---|---|
disableNlInterpretation |
用于停用查询的自然语言 (NL) 解读的标志。默认值为 false,设置为 true 可停用自然语言解读。自然语言解释仅适用于预定义的数据源。 |
enableVerbatimMode |
启用此标志可关闭所有内部优化,例如对查询进行自然语言 (NL) 解释、检索补充结果以及使用同义词(包括自定义同义词)。如果这两个标志中的任何一个为 true,则会停用 NL 解释。 |
disableSupplementalResults |
使用此标志可针对查询停用补充结果。如果设置为 True,则在 SearchApplication 级别选择的补充结果设置将优先。 |
QueryInterpretation
| JSON 表示法 |
|---|
{ "interpretedQuery": string, "interpretationType": enum ( |
| 字段 | |
|---|---|
interpretedQuery |
搜索中使用的查询的解释。例如,包含“John 发来的电子邮件”等自然语言意图的查询将被解读为“from:john source:mail”。如果原因是 NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY,则不会填充此字段。 |
interpretationType |
|
reason |
查询解释的原因。如果解释类型不是 NONE,则此字段不会为 UNSPECIFIED。 |
interpretedQueryActualResultCount |
解释后的查询实际返回的结果数。 |
interpretedQueryEstimatedResultCount |
解释后的查询返回的估计结果数。 |
QueryInterpretation.InterpretationType
| 枚举 | |
|---|---|
NONE |
系统不会使用自然语言解释或更宽泛的查询来获取搜索结果。 |
BLEND |
原始查询的结果与其他结果融合。将这些其他结果与原始查询的结果融合的原因填充在下方的“reason”字段中。 |
REPLACE |
原始查询的结果会被替换。替换原始查询结果的原因填充在下方的“reason”字段中。 |
QueryInterpretation.Reason
| 枚举 | |
|---|---|
UNSPECIFIED |
|
QUERY_HAS_NATURAL_LANGUAGE_INTENT |
自然语言查询解读用于提取搜索结果。 |
NOT_ENOUGH_RESULTS_FOUND_FOR_USER_QUERY |
查询和文档字词相似度用于选择性地扩大查询范围,以检索更多搜索结果,因为未找到足够多的用户查询结果。在这种情况下,解释后的查询将为空。 |
SearchResult
包含文档的已编入索引的信息的结果。下一个 ID:16
| JSON 表示法 |
|---|
{ "title": string, "url": string, "snippet": { object ( |
| 字段 | |
|---|---|
title |
搜索结果的标题。 |
url |
搜索结果的网址。相应网址包含指向实际商品的 Google 重定向。此网址已签名,不应更改。 |
snippet |
相应结果的所有摘要的串联。 |
metadata |
搜索结果的元数据。 |
clusteredResults[] |
如果来源是聚类结果,则提供聚类结果列表。聚类结果只有一个级别。如果当前来源未启用聚类,此字段将为空。 |
debugInfo |
有关相应搜索结果的调试信息。 |
Snippet
搜索结果的摘要,用于概括结果网页的内容。
| JSON 表示法 |
|---|
{
"snippet": string,
"matchRanges": [
{
object ( |
| 字段 | |
|---|---|
snippet |
相应文档的摘要。可能包含转义的 HTML 字符,应在渲染之前取消转义。 |
matchRanges[] |
片段中的匹配范围。 |
MatchRange
片段的匹配范围 [start, end)。
| JSON 表示法 |
|---|
{ "start": integer, "end": integer } |
| 字段 | |
|---|---|
start |
匹配项在代码段中的起始位置。 |
end |
片段中匹配的结束时间。 |
元数据
匹配的搜索结果的元数据。
| JSON 表示法 |
|---|
{ "source": { object ( |
| 字段 | |
|---|---|
source |
结果的命名来源,例如 Gmail。 |
mimeType |
搜索结果的 MIME 类型。 |
thumbnailUrl |
结果的缩略图网址。 |
owner |
搜索结果的文档或对象的所有者(通常是创建者)。 |
createTime |
搜索结果中相应文档或对象的创建时间。 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
updateTime |
搜索结果中对象的上次修改日期。如果未在商品中设置,此处返回的值为空。如果使用 采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例: |
fields[] |
结构化数据中的已编入索引的字段,以通用命名属性的形式返回。 |
displayOptions |
用于指定如何显示结构化数据搜索结果的选项。 |
objectType |
搜索结果的对象类型。 |
ResultDisplayMetadata
| JSON 表示法 |
|---|
{
"objectTypeLabel": string,
"metalines": [
{
object ( |
| 字段 | |
|---|---|
objectTypeLabel |
对象的显示标签。 |
metalines[] |
要随结果一起显示的元行内容。 |
ResultDisplayMetadata.ResultDisplayLine
构成显示行的字段的集合
| JSON 表示法 |
|---|
{
"fields": [
{
object ( |
| 字段 | |
|---|---|
fields[] |
|
ResultDisplayMetadata.ResultDisplayField
query.search 结果的显示字段
| JSON 表示法 |
|---|
{
"label": string,
"operatorName": string,
"property": {
object ( |
| 字段 | |
|---|---|
label |
相应属性的显示标签。 |
operatorName |
相应媒体资源的运算符名称。 |
property |
相应媒体资源的名值对。 |
ResultDebugInfo
有关结果的调试信息。
| JSON 表示法 |
|---|
{ "formattedDebugInfo": string } |
| 字段 | |
|---|---|
formattedDebugInfo |
格式化为适合显示的一般调试信息。 |
StructuredResult
作为搜索请求的一部分返回的结构化结果。
| JSON 表示法 |
|---|
{ // Union field |
| 字段 | |
|---|---|
联合字段
|
|
person |
人的表示形式 |
SpellResult
| JSON 表示法 |
|---|
{ "suggestedQuery": string, "suggestionType": enum ( |
| 字段 | |
|---|---|
suggestedQuery |
查询的建议拼写。 |
suggestionType |
为当前查询触发的建议。 |
suggestedQueryHtml |
表示拼写更正后的查询的经过清理的 HTML,可用于界面。这通常具有特定于语言的标记,用于标记已进行拼写检查的查询部分。 |
SpellResult.SuggestionType
为查询触发的建议类型。
| 枚举 | |
|---|---|
SUGGESTION_TYPE_UNSPECIFIED |
默认拼写检查类型 |
NON_EMPTY_RESULTS_SPELL_SUGGESTION |
拼写建议(无任何结果)已更改。系统仍会显示原始查询(有非零结果)的结果,并提供可获得结果的拼写建议。 |
ZERO_RESULTS_FULL_PAGE_REPLACEMENT |
当原始查询没有结果时触发拼写建议。如果原始查询没有结果,但拼写建议有结果,我们会触发拼写更正后的查询的结果。 |
SafeHtmlProto
重要提示:接受来自不受信任来源的此消息是不安全的,因为攻击者很容易伪造不满足类型安全合约的序列化消息,例如,该消息可能包含攻击者控制的脚本。接收 SafeHtmlProto 的系统会隐式信任 SafeHtmlProto 的生产者。因此,在 RPC 响应中返回此消息通常是安全的,但在 RPC 请求中接受此消息通常是不安全的。
| JSON 表示法 |
|---|
{ "privateDoNotAccessOrElseSafeHtmlWrappedValue": string } |
| 字段 | |
|---|---|
privateDoNotAccessOrElseSafeHtmlWrappedValue |
重要提示:切勿设置或读取此字段,即使是在测试中也不行,因为它是私有的。如需了解用于创建或读取此消息的编程语言软件包,请参阅 .proto 文件顶部的文档。 |
FacetResult
特定于来源的分面响应
| JSON 表示法 |
|---|
{
"sourceName": string,
"objectType": string,
"operatorName": string,
"buckets": [
{
object ( |
| 字段 | |
|---|---|
sourceName |
返回构面结果的来源名称。不会为空。 |
objectType |
返回分面结果的对象类型。可以留空。 |
operatorName |
为分面选择的运算符的名称。@see cloudsearch.SchemaPropertyOptions |
buckets[] |
响应中包含至少一个具有相应过滤条件的结果的值的 FacetBuckets。 |
FacetBucket
分面中的分桶是基本操作单元。根据分桶字段的类型,一个桶可以包含单个值或连续的值范围。FacetBucket 目前仅用于返回响应对象。
| JSON 表示法 |
|---|
{ "count": integer, "percentage": integer, "filter": { object ( |
| 字段 | |
|---|---|
count |
与相应分桶值匹配的结果数量。只有在确保数量准确无误时,才会针对搜索返回数量。Cloud Search 不保证任何查询的搜索分面计数,即使是相同的查询,搜索分面计数也可能仅间歇性显示。不要基于分面数量的存在性来构建依赖项;而应使用始终会返回的分面数量百分比。 |
percentage |
与相应分桶值匹配的结果所占的百分比。返回值介于 (0-100] 之间,如果是小数,则向下舍入为整数。如果未明确返回该值,则表示四舍五入后为 0 的百分比值。系统会针对所有搜索返回百分比,但这些百分比是估计值。由于系统始终会返回百分比,因此您应呈现百分比,而不是数量。 |
filter |
如果选择了相应存储分区,则要在搜索请求中传递的过滤条件。 |
联合字段 bucket_value。分面 bucket_value 的分桶范围或值只能是以下值之一: |
|
value |
|
ResponseDebugInfo
有关响应的调试信息。
| JSON 表示法 |
|---|
{ "formattedDebugInfo": string } |
| 字段 | |
|---|---|
formattedDebugInfo |
格式化为适合显示的一般调试信息。 |
错误信息
有关响应的错误信息。
| JSON 表示法 |
|---|
{
"errorMessages": [
{
object ( |
| 字段 | |
|---|---|
errorMessages[] |
|
ErrorMessage
每个来源响应的错误消息。
| JSON 表示法 |
|---|
{
"source": {
object ( |
| 字段 | |
|---|---|
source |
|
errorMessage |
|
ResultCounts
结果数量信息
| JSON 表示法 |
|---|
{
"sourceResultCounts": [
{
object ( |
| 字段 | |
|---|---|
sourceResultCounts[] |
每个有结果的来源的结果数量信息。 |
SourceResultCount
每个来源结果的计数信息。
| JSON 表示法 |
|---|
{ "source": { object ( |
| 字段 | |
|---|---|
source |
与结果数量信息关联的来源。 |
hasMoreResults |
相应来源是否还有更多搜索结果。 |
联合字段
|
|
resultCountEstimate |
相应来源的估计结果数量。 |
resultCountExact |
相应来源的确切结果数量。 |