本页面介绍了如何使用 Google Cloud 控制台预览搜索结果,以及如何使用 API 获取搜索结果。
此外,除了使用 Web 应用界面,您还可以发起 API 调用并将这些调用集成到服务器或应用中。本页面包含一些代码示例,展示了如何使用 gRPC 客户端库通过服务账号发出搜索查询。
获取搜索结果
您可以在 Google Cloud 控制台中预览搜索结果,也可以使用 API 获取搜索结果。
控制台
如需使用 Google Cloud 控制台预览包含结构化数据或非结构化数据的应用的搜索结果,请按以下步骤操作:
- 在控制台中打开预览页面。
- 输入搜索查询。
- 如果您在第 1 步中启用了自动补全功能,那么在您输入内容时,搜索栏下方会显示自动补全建议列表。
- (可选)如果您已将多个数据存储区与应用相关联,但只想获取特定数据存储区的结果,请选择要从中获取结果的数据存储区。
- 点击 Enter 键提交查询。
- 搜索栏下方会显示搜索结果列表。
- 如果未在配置页面中定义任何属性映射,则每个搜索结果都会显示为原始属性名称和值的列表。
- 如果配置页面中保存了任何特性映射,搜索结果会显示与配置页面预览中相同的图片。
- 如果在配置页面中指定了任何方面,它们也会以相同的方式显示。
- 点击结果列表下方的箭头可加载下一页结果。
REST
如需使用 API 获取包含结构化或非结构化数据的应用的搜索结果,请使用 engines.servingConfigs.search
方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
在应用页面上,找到应用的名称,并从 ID 列获取应用的 ID。
预览搜索结果。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "query": "QUERY", "userPseudoId": "USER_PSEUDO_ID", "pageSize": "PAGE_SIZE", "offset": "OFFSET", "orderBy": "ORDER_BY", "filter": "FILTER", "boostSpec": "BOOST_SPEC", "facetSpec": "FACET_SPEC", "queryExpansionSpec": "QUERY_EXPANSION_SPEC", "spellCorrectionSpec": "SPELL_CORRECTION_SPEC", "contentSearchSpec": "CONTENT_SEARCH_SPEC", "dataStoreSpecs": [{"DATA_STORE_SPEC"}], }'
替换以下内容:
PROJECT_ID
:您的项目的 ID。APP_ID
:您要查询的应用的 ID。QUERY
:要搜索的查询文本。USER_PSEUDO_ID
:一个 UTF-8 编码的字符串,用作跟踪用户的唯一假名化标识符。长度上限为 128 个字符。 Google 强烈建议使用此字段,因为它可以提高模型性能和个性化质量。您可以为此字段使用 HTTP Cookie,该 Cookie 可唯一标识单个设备上的访问者。以下是一些重要注意事项:- 当访问者登录或退出网站时,此标识符不会发生变化。
- 不得为多个用户设置相同的标识符。 否则,为多个用户使用同一 User-ID 可能会合并不同用户的事件历史记录,从而降低模型质量。
- 此字段不得包含个人身份信息 (PII)。
- 对于给定的搜索或浏览请求,此字段必须映射到用户事件中对应的
userPseudoId
字段。
如需了解详情,请参阅
userPseudoId
。PAGE_SIZE
:搜索返回的结果数。允许的最大页面大小取决于数据类型。如果网页大小高于最大值,系统会强制将其转换为最大值。OFFSET
:可选。结果的起始索引。 默认值为 0。例如,如果偏移量为 2,页面大小为 10,并且有 15 个结果要返回,则第一个页面上会返回第 2 个到第 11 个结果。
ORDER_BY
:可选。结果的排列顺序。FILTER
:可选。一个文本字段,用于使用过滤表达式过滤搜索结果。默认值为空字符串,表示不应用任何过滤条件。示例:
color: ANY("red", "blue") AND score: IN(*, 100.0e)
如需了解详情,请参阅过滤对结构化或非结构化数据的搜索。
BOOST_SPEC
:可选。用于提升或隐藏文档的规范。值:BOOST
:[-1,1] 范围内的浮点数。如果该值为负值,则结果会被降级(显示在结果中更靠下的位置)。如果值为正,则结果会获得提升(显示在结果中更靠上的位置)。CONDITION
:用于选择应用加权的文档的文本过滤表达式。过滤条件的求值结果必须为布尔值。
如需了解如何提升结构化搜索的搜索结果,请参阅提升搜索结果。
FACET_SPEC
:可选。用于执行分面搜索的构面规范。QUERY_EXPANSION_SPEC
:可选。用于确定在哪些条件下应进行查询扩展的规范。默认值为DISABLED
。SPELL_CORRECTION_SPEC
:可选。用于确定在哪些条件下应进行拼写更正的规范。默认值为AUTO
。CONTENT_SEARCH_SPEC
:可选。用于获取摘要、提取式答案、提取式片段和搜索摘要。仅适用于非结构化数据。有关详情,请参阅:DATA_STORE_SPEC
:用于过滤要搜索的特定数据存储区。如果您的搜索应用连接到多个数据存储区,则可以使用此参数。如需了解详情,请参阅 DataStoreSpec。在搜索响应中查看引导式搜索结果:
引导式搜索结果会随结构化搜索和非结构化搜索的搜索响应一起返回。引导式搜索结果包含根据搜索结果文档提取的属性键值对列表。这样一来,用户就可以使用某些属性键和值作为过滤条件来优化搜索结果。
在此示例响应中,通过发出新的搜索请求(其中过滤条件字段指定为
_gs.color: ANY("green")
),使用绿色来优化搜索结果:{ "guidedSearchResult": { "refinementAttributes": [ { "attributeKey": "_gs.color", "attributeValue": "green" }, { "attributeKey": "_gs.category", "attributeValue": "shoe" } ] } }
获取搜索结果中的文档相关性得分
文档相关性得分基于查询与文档的相似度。得分会放入 11 个范围内的分桶中:0、0.1、0.2,…,1.0。 得分越高,文档的相关性就越强。
请考虑以下使用情形下的文档相关性得分:
根据相关性得分进行搜索后过滤,以移除不相关的结果
搜索后排名或作为其他应用的输入
调试:相关性得分可帮助您了解系统返回某些搜索结果的原因
对于每条搜索结果,系统都可以返回相关性得分:
"results": [ { "id": "DOCUMENT_ID", "document": { ... }, "modelScores": { "relevance_score": { "values": [ DOCUMENT-RELEVANCE-SCORE ] } } }, ...
另请参阅下文中的示例命令。
开始前须知:请确保搜索应用与结构化或非结构化数据存储区相关联。
REST
如需请求在搜索结果中返回文档相关性得分,请按如下方式使用 engines.servingConfigs.search
方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 Gemini Enterprise 页面。
在应用页面上,找到应用的名称,并从 ID 列获取应用的 ID。
运行以下 curl 命令,以获取随搜索结果返回的分数。
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "relevanceScoreSpec": { "returnRelevanceScore": true } }'
PROJECT_ID
:您的项目的 ID。APP_ID
:您要查询的应用的 ID。QUERY
:要搜索的查询文本。
搜索摘要功能因模型而异
如果您为查询生成搜索摘要,可能会发现控制台结果和 API 结果的摘要有所不同。如果您看到此消息,很可能是因为控制台使用的 LLM 模型与 API 不同。本页上的 curl 和代码示例使用的是稳定版 LLM 模型。