本页面介绍了如何使用 Google Cloud 控制台预览搜索结果,以及如何使用 API 获取搜索结果。
此外,除了创建要添加到网页中的搜索 widget,您还可以发起 API 调用并将这些调用集成到服务器或应用中。本页面包含一些代码示例,演示了如何使用 gRPC 客户端库通过服务账号发出搜索查询。
获取包含网站数据的应用的搜索结果
控制台
如需使用 Google Cloud 控制台预览包含网站数据的应用在搜索结果中的显示效果,请按以下步骤操作:
在 Google Cloud 控制台中,前往 AI Applications 页面。
点击要修改的应用的名称。
点击预览。
在控制台中打开预览页面。
可选:如果您已将多个数据存储区连接到应用,但只想获取特定数据存储区的结果,请选择要从中获取结果的数据存储区。
输入搜索查询。
如果您启用了自动补全功能,系统会在您输入内容时在搜索栏下方显示自动补全建议列表。
按 Enter 键提交查询。
- 搜索结果列表会显示在搜索栏下方。
- 每个结果都包含标题、摘要和网址。
- 点击结果即可打开相应网址。
- 如果为应用启用了高级 LLM 功能,系统还可能会显示生成的答案。
REST
如需使用 API 获取包含网站数据的应用的搜索结果,请使用 engines.servingConfigs.search
方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 AI Applications 页面。
在应用页面上,找到应用的名称,并从 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 '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "pageSize": "PAGE_SIZE", "offset": "OFFSET", "orderBy": "ORDER_BY", "params": {"user_country_code": "USER_COUNTRY_CODE", "searchType": "SEARCH_TYPE"}, "filter": "FILTER", "boostSpec": "BOOST_SPEC", "contentSearchSpec": { "searchResultMode": "RESULT_MODE" }, "userPseudoId": "USER_PSEUDO_ID", "dataStoreSpecs": [{"DATA_STORE_SPEC"}] }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。APP_ID
:要查询的 Vertex AI Search 应用的 ID。QUERY
:要搜索的查询文本。PAGE_SIZE
:搜索返回的结果数。 允许的最大页面大小取决于数据类型。如果页面大小高于最大值,系统会将其强制转换为最大值。- 采用基本索引编制的网站:默认
10
,最多25
- 采用高级索引编制的网站:默认
25
,最多50
- 其他:默认值
50
,最大值100
- 采用基本索引编制的网站:默认
OFFSET
:结果的起始索引。默认值为 0。例如,如果偏移量为 2,页面大小为 10,并且有 15 个结果要返回,则第一个页面上会返回结果 2 到 12。
ORDER_BY
:结果的排列顺序。要排序的属性必须具有数值解释,例如date
。如需了解详情,请参阅对网页搜索结果进行排序。USER_COUNTRY_CODE
:用户的位置。此键值对是params
映射字段唯一支持的条目。默认值为空。如需了解可接受的值,请参阅可编程搜索引擎 JSON API 参考文档中的国家/地区代码。SEARCH_TYPE
:要执行的搜索类型。对于文档搜索,默认值为 0。另一个支持的值是 1(用于图片搜索)。FILTER
:一个文本字段,用于使用过滤表达式过滤搜索结果。默认值为空字符串。如需详细了解如何使用filter
字段,请参阅过滤网站搜索结果。BOOST_SPEC
:可选。用于提升或隐藏文档的规范。值:RESULT_MODE
:确定搜索结果是以完整文档的形式返回还是分块返回。如需获取块,数据存储区必须启用文档分块功能。可接受的值为documents
和chunks
。如果为数据存储区启用了分块,则默认值为chunks
。否则,默认值为documents
。如需了解有关文档分块的信息,请参阅解析和分块文档。此字段处于公开预览版阶段;如需使用此字段,请在 curl 命令中将v1
更改为v1alpha
。USER_PSEUDO_ID
:一个 UTF-8 编码的字符串,用作跟踪用户的唯一假名化标识符。长度上限为 128 个字符。 Google 强烈建议使用此字段,因为它可以提高模型性能和个性化质量。您可以为此字段使用 HTTP Cookie,该 Cookie 可唯一标识单个设备上的访问者。以下是一些重要注意事项:- 当访问者登录或退出网站时,此标识符不会发生变化。
- 不得为多个用户设置相同的标识符。 否则,相同的用户 ID 可能会合并不同用户的事件历史记录,从而降低模型质量。
- 此字段不得包含个人身份信息 (PII)。
- 对于给定的搜索或浏览请求,此字段必须映射到用户事件中对应的
userPseudoId
字段。
如需了解详情,请参阅
userPseudoId
。DATA_STORE_SPEC
:用于过滤要搜索的特定数据存储区。如果您的搜索应用连接到多个数据存储区,但您希望获得特定数据存储区的搜索结果,请使用dataStoreSpecs
。如需了解详情,请参阅 DataStoreSpec。
C#
如需了解详情,请参阅 AI Applications C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 AI Applications Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 AI Applications Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解详情,请参阅 AI Applications PHP API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 AI Applications Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解详情,请参阅 AI Applications Ruby API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
获取包含网站数据的应用的搜索结果(API 密钥)
如果您想使用 API 密钥(而不是通过服务账号或用户账号使用 OAuth 2.0)对搜索方法调用进行身份验证,请按照以下流程操作,该流程使用 searchLite
方法。searchLite
方法与 search
方法具有相同的功能,但只能用于搜索公开网站。
searchLite
方法特别适合在以下情况下使用:
您有一个静态网站,通过服务账号或用户账号设置 OAuth 2.0 并不实际。
您已从可编程搜索引擎的 Custom Search Site Restricted JSON API 迁移到 Vertex AI Search。
您不想使用搜索 widget。
准备工作
您需要先获取 API 密钥,然后才能调用 servingConfigs.searchLite
方法。如果您没有 API 密钥,请完成部署搜索应用 (API 密钥) 的第 1 步。
过程
REST
如需使用 API 获取通过 API 密钥进行身份验证的包含公开网站数据的应用的搜索结果,请使用 engines.servingConfigs.searchLite
方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 AI Applications 页面。
在应用页面上,找到应用的名称,并从 ID 列获取应用的 ID。
运行以下 curl 命令以获取搜索结果:
curl -X POST -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:searchLite?key=API_KEY" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "userPseudoId": "USER_PSEUDO_ID" }'
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目的 ID。API_KEY
:您的 API 密钥字符串。PROJECT_ID
:您的 Google Cloud 项目的 ID。APP_ID
:要查询的 Vertex AI Search 应用的 ID。QUERY
:要搜索的查询文本。USER_PSEUDO_ID
:一个 UTF-8 编码的字符串,用作跟踪用户的唯一假名化标识符。长度上限为 128 个字符。 Google 强烈建议使用此字段,因为它可以提高模型性能和个性化质量。您可以为此字段使用 HTTP Cookie,该 Cookie 可唯一标识单个设备上的访问者。以下是一些重要注意事项:- 当访问者登录或退出网站时,此标识符不会发生变化。
- 不得为多个用户设置相同的标识符。 否则,相同的用户 ID 可能会合并不同用户的事件历史记录,从而降低模型质量。
- 此字段不得包含个人身份信息 (PII)。
- 对于给定的搜索或浏览请求,此字段必须映射到用户事件中对应的
userPseudoId
字段。
如需了解详情,请参阅
userPseudoId
。
Python
如需了解详情,请参阅 AI Applications Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
获取包含结构化数据或非结构化数据的应用的搜索结果
您可以在 Google Cloud 控制台中预览搜索结果,也可以使用 API 获取搜索结果。
控制台
如需使用 Google Cloud 控制台预览包含结构化数据或非结构化数据的应用的搜索结果,请按以下步骤操作:
- 在控制台中打开预览页面。
输入搜索查询。
如果您启用了自动补全功能,系统会在您输入内容时在搜索栏下方显示自动补全建议列表。
(可选)如果您已将多个数据存储区连接到应用,但只想获取特定数据存储区的结果,请选择要从中获取结果的数据存储区。
按 Enter 键提交查询。
搜索结果列表会显示在搜索栏下方。
对于结构化数据,请注意以下事项:
如果未在配置 > 配置结果中的字段中定义属性映射,则搜索结果会显示为原始属性名称和值的列表。
如果任何属性映射已保存在配置 > 配置结果中的字段中,那么搜索结果的显示方式将与您在配置页面预览中看到的一致。
如果在配置 > 分面设置中指定了任何分面,则它们会以相同的方式显示。
REST
如需使用 API 获取包含结构化或非结构化数据的应用的搜索结果,请使用 engines.servingConfigs.search
方法:
查找应用 ID。如果您已拥有应用 ID,请跳到下一步。
在 Google Cloud 控制台中,前往 AI Applications 页面。
在应用页面上,找到应用的名称,并从 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
:您的 Google Cloud 项目的 ID。APP_ID
:要查询的 Vertex AI Search 应用的 ID。QUERY
:要搜索的查询文本。USER_PSEUDO_ID
:一个 UTF-8 编码的字符串,用作跟踪用户的唯一假名化标识符。长度上限为 128 个字符。 Google 强烈建议使用此字段,因为它可以提高模型性能和个性化质量。您可以为此字段使用 HTTP Cookie,该 Cookie 可唯一标识单个设备上的访问者。以下是一些重要注意事项:- 当访问者登录或退出网站时,此标识符不会发生变化。
- 不得为多个用户设置相同的标识符。 否则,相同的用户 ID 可能会合并不同用户的事件历史记录,从而降低模型质量。
- 此字段不得包含个人身份信息 (PII)。
- 对于给定的搜索或浏览请求,此字段必须映射到用户事件中对应的
userPseudoId
字段。
如需了解详情,请参阅
userPseudoId
。PAGE_SIZE
:搜索返回的结果数。允许的最大页面大小取决于数据类型。如果网页大小大于最大值,则会被强制转换为最大值。- 采用基本索引编制的网站:默认
10
,最多25
- 采用高级索引编制的网站:默认
25
,最多50
- 其他:默认值
50
,最大值100
- 采用基本索引编制的网站:默认
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
:用于过滤要搜索的特定数据存储区。如果搜索应用连接到多个数据存储区,则可以使用此参数。在搜索响应中查看引导式搜索结果:
引导式搜索结果会随结构化搜索和非结构化搜索的搜索响应一起返回。引导式搜索结果包含一个基于搜索结果文档提取的属性键值对列表。这样一来,用户就可以使用某些属性键和值作为过滤条件来优化搜索结果。
在此示例响应中,通过发出新的搜索请求(其中过滤条件字段指定为
_gs.color: ANY("green")
),使用绿色来优化搜索结果:{ "guidedSearchResult": { "refinementAttributes": [ { "attributeKey": "_gs.color", "attributeValue" : "green" }, { "attributeKey": "_gs.category", "attributeValue" : "shoe" } ] } }
C#
如需了解详情,请参阅 AI Applications C# API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
如需了解详情,请参阅 AI Applications Java API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
如需了解详情,请参阅 AI Applications Node.js API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解详情,请参阅 AI Applications PHP API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解详情,请参阅 AI Applications Python API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解详情,请参阅 AI Applications Ruby API 参考文档。
如需向 AI 应用进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
获取搜索结果中的文档相关性得分
文档相关性得分基于查询与文档的相似度。得分会放入 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 控制台中,前往 AI Applications 页面。
在应用页面上,找到应用的名称,并从 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
:您的 Google Cloud 项目的 ID。APP_ID
:要查询的 Vertex AI Search 应用的 ID。QUERY
:要搜索的查询文本。
搜索摘要功能因模型而异
如果您为查询生成搜索摘要,可能会发现控制台结果和 API 结果的摘要有所不同。如果您看到此消息,很可能是因为控制台使用的 LLM 模型与 API 不同。本页上的 curl 和代码示例使用的是稳定版 LLM 模型。
更改或查看界面预览页面中使用的 LLM 模型(仅适用于高级搜索应用和医疗保健应用)。
- 前往应用的配置页面 > 界面标签页。
选择搜索类型:
- 选择搜索并获取回答,以便在搜索结果上方显示生成式摘要。
- 选择跟进搜索,以启用对话式搜索,该功能可提供生成式摘要并支持跟进搜索问题。
在用于生成摘要的大语言模型部分中,选择一个模型。
对于方法调用,稳定模型是默认模型。如需使用稳定模型以外的 LLM 模型,请参阅指定总结模型和指定回答模型。
后续步骤
使用搜索 API 浏览宽泛搜索应用中的数据。