投放控制(也称为控制)用于更改请求的默认行为。
例如,控件可以提升和隐藏结果、过滤返回结果中的条目、将查询彼此关联为同义词,或将查询重定向到指定的 URI。
投放控件简介
若要更改请求结果,请先创建服务控件。然后,将该控件附加到应用。控件只会影响其附加到的应用提供的请求。如果控件 则没有任何作用。
某些控件(例如提升控件)依赖于数据存储区。如果 从应用中移除数据存储区,那么所有依赖于数据存储区的控件都会被 也会从该应用中移除并变为非活动状态,但不会被删除。
创建控件时,您可以根据需要定义条件 。条件使用条件字段进行定义。可用的条件字段如下:
queryTerms
。在搜索特定查询时应用此控件。activeTimeRange
。当请求在指定的时间范围内发生时,系统会应用此控件。
如果同时为某个控件指定了两种条件,则系统会应用该控件 添加到搜索请求中。如果为同一条件指定了多个值,则只需其中一个值匹配即可满足该条件。
例如,请考虑以下条件并指定两个查询字词:
"queryTerms": [
{
"value": "gShoe",
"fullMatch": true
},
{
"value": "gBoot",
"fullMatch": true
}
]
对于包含
SearchRequest.query="gShoe"
或 SearchRequest.query="gBoot"
发出的请求,
但对SearchRequest.query="gSandal"
或任何其他
字符串。
如果未指定任何条件,则控件将始终应用。
如需了解详情,请参阅 API 参考文档中的 servingConfigs.search
。
投放控件类型
提供以下类型的投放控件:
控制 | 说明 | 支持的设备 |
---|---|---|
提升控制 | 更改返回的结果顺序 | 使用支持架构的数据存储区的搜索应用,例如包含结构化数据的数据存储区、包含结构化数据的网站、包含元数据的非结构化数据或媒体数据 |
过滤器控件 | 从返回的结果中移除条目 | 使用支持架构的数据存储区的搜索应用,例如包含结构化数据的数据存储区、包含结构化数据的网站、包含元数据的非结构化数据或媒体数据 |
同义词控件 | 将查询相互关联 | 搜索具有网站、结构化、非结构化或媒体数据存储区的应用 |
重定向控件 | 重定向到指定的 URI | 所有搜索应用 |
关于提升投放控制选项
提升投放控件是指具有 boostAction
的控件。
boostAction
的语法如下:
{
"boost": "BOOST",
"filter": "FILTER",
"dataStore": "DATA_STORE_RESOURCE_PATH"
}
- BOOST:介于
-1
和1
之间的浮点数。如果该值为负,则相应结果会被降级,在搜索结果中显示得更靠后。该值为 系统会优先显示肯定结果,使其在搜索结果中更靠前的位置出现。 - FILTER:一个字符串,用于指定文档必须满足的要求。如果文档与所有 系统就会应用升位。否则没有变化。如果此字段为空,则对数据存储区中的所有文档应用该提升因子。如需了解过滤语法,请参阅过滤条件表达式语法。
- DATA_STORE_RESOURCE_PATH:应通过此控件提升文档排名的数据存储区的完整资源路径。完整资源路径的格式为
projects/PROJECT_ID/locations/LOCATION_ID/collections/default_collection/dataStores/DATA_STORE_ID
。此数据存储区必须附加到请求中指定的引擎。
过滤器投放控件简介
过滤器投放控件定义为具有 filterAction
的控件。
filterAction
的语法如下:
{
"filter": "FILTER"
}
- FILTER:一个字符串,用于指定 文档。如果文档符合所有要求,则结果会包含在结果列表中。否则,该结果将从结果中移除 列表。如需了解过滤语法,请参阅过滤表达式语法。
同义词投放控件简介
同义词服务控件定义为具有 synonymsAction
的控件。
synonymsAction
的语法如下:
{
"synonyms": "SYNONYMS"
}
- SYNONYMS:会彼此关联的字符串,因此 更有可能显示类似结果。您必须至少指定 两个字符串,您最多可以指定 100 个字符串。字符串必须采用 UTF-8 编码且采用小写形式。不允许使用重复的字符串。
例如:
{
"synonyms": ["pixel", "android phone", "google phone"]
}
重定向投放控件简介
重定向服务控件允许将用户重定向到提供的 URI。
重定向控件定义为具有 redirectAction
的控件。
redirectAction
的语法:
{
"redirect_uri": "REDIRECT_URI"
}
- REDIRECT_URI:一个 URI(最多 2000 个字符)。
例如,如果查询字词的值为“support”,您可以设置重定向 访问技术支持页面,而不是返回(或未能返回) 有关于“支持”的搜索结果。
{
"redirect_uri": ["https://www.example.com/support"]
}
queryTerms
条件简介
queryTerms
为可选项。如果您想在某一个特定时段使用某个投放控件,
。使用 queryTerms
条件时,控件
当 queryTerms
的值与下列任一字词匹配时应用
SearchRequest.query
。
只有在 Control.searchUseCase
设置为 SOLUTION_TYPE_SEARCH
时才能使用查询字词。
在单个 Control.condition
上,最多可以指定 10 个不同的 queryTerms
。如果未指定查询字词,系统会忽略该字段。
单个 queryTerm
的语法如下:
{
"value": "VALUE_1",
"fullMatch": "FULL_MATCH_1"
}
- VALUE_1:长度为
[1, 5000]
的小写 UTF-8 字符串。如果 FULL_MATCH_1 为true
,则最多只能包含三个由空格分隔的项。 - FULL_MATCH_1:一个布尔值。如果设置为
true
,则它需要 与queryTerm.value
完全匹配SearchRequest.query
。设置后 到false
,它需要SearchRequest.query
包含queryTerm.value
, 子字符串。
activeTimeRange
条件简介
activeTimeRange
为可选项。它检查收到请求的时间
介于 activeTimeRange.startTime
到 activeTimeRange.endTime
之间。
最多可在单个字段中指定 10 个 activeTimeRange
范围
Control.condition
。如果未指定任何 activeTimeRange
范围,系统会忽略该字段。
单个 activeTimeRange
的语法如下:
[
{
"startTime": "START_TIMESTAMP_1",
"endTime": "END_TIMESTAMP_1"
}
]
- START_TIMESTAMP_1:定义将应用控制的 earliestTime(包括该时间)。时间戳采用 RFC 3339 世界协调时间 (UTC)“Zulu”格式,精确到纳秒且最多有 9 位小数,例如
"2023-10-02T15:01:23Z"
。 - END_TIMESTAMP_1:定义将应用控制的最新时间(包括该时间)。该时间必须是 。
API 说明:使用投放控件更改默认搜索请求行为
要更改默认搜索请求行为,您需要创建一个服务控件并 将其附加到默认服务配置
准备工作
如果您想创建投放控件,请与您的 Google 联系, 客户支持团队,并请求加入投放控制设置许可名单。
创建服务控件
按照以下说明创建投放控制。
有关字段详情,请参阅
Controls
API 参考文档和
Controls.create
API 参考文档。
找到您的数据存储区 ID。如果您已有数据存储区 ID,请跳至下一步。
在 Google Cloud 控制台中,前往 Agent Builder 页面,然后在导航菜单中点击数据存储区。
点击您的数据存储区的名称。
在数据存储区的数据页面上,获取数据存储区 ID。
为对照组选择条件类型和字段值。
以下是条件的截断示例:
{ "queryTerms": [ { "value": "VALUE_1", "fullMatch": FULL_MATCH_1 }, { "value": "VALUE_2", "fullMatch": FULL_MATCH_2 }, ], "activeTimeRange": [ { "startTime": "START_TIMESTAMP_1", "endTime": "END_TIMESTAMP_1" }, { "startTime": "START_TIMESTAMP_2", "endTime": "END_TIMESTAMP_2" }, ] }
运行以下 curl 命令以创建控件。
增强控制:点击即可查看 curl 命令 以创建增强控件。
运行以下 curl 命令:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/controls?CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": ["CONDITION"], "boostAction": "BOOST_ACTION", }'
过滤器控件:点击此选项可查看用于创建过滤器控件的 curl 命令。
运行以下 curl 命令:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": ["CONDITION"], "filterAction": "FILTER_ACTION", }'
同义词控件:点击即可查看 curl 命令来创建同义词控件。
运行以下 curl 命令:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": ["CONDITION"], "synonymsAction": "SYNONYMS_ACTION", }'
重定向控件:点击此处可查看用于创建重定向控件的 curl 命令。
运行以下 curl 命令:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/controls?controlId=CONTROL_ID" \ -d '{ "displayName": "DISPLAY_NAME", "solutionType": "SOLUTION_TYPE_SEARCH", "useCases": ["USE_CASE"], "conditions": ["CONDITION"], "redirectAction": "REDIRECT_ACTION", }'
- PROJECT_ID:您的 Google Cloud 项目。
- DATA_STORE_ID:数据存储区的唯一 ID。
- CONTROL_ID:控件的唯一标识符(在数据存储区内)。ID 可以包含小写字母、数字、连字符和下划线。
- DISPLAY_NAME:控件的直观易懂的名称。Google 建议此名称应能说明何时或为何使用该控件。必须是长度为
[1,128]
的 UTF-8 字符串。 - USE_CASE:必须是
SEARCH_USE_CASE_SEARCH
或SEARCH_USE_CASE_BROWSE
。如果指定了SEARCH_USE_CASE_BROWSE
,则无法在条件中使用Condition.queryTerms
。 - CONDITION:(可选)定义控件应在何时 。
- BOOST_ACTION:用于定义提升控件。请参阅
boostAction
API 参考文档。 - FILTER_ACTION:用于定义过滤器控件。请参阅
filterAction
API 参考文档。 - SYNONYMS_ACTION:用于定义同义词控件。请参阅
synonymsAction
API 参考文档。 - REDIRECT_ACTION:用于指定重定向 URI。请参阅
redirectAction
API 参考文档。
将控件附加到应用。
提升控件:点击此按钮可查看提升控件的 curl 命令。
运行以下 curl 命令,将提升控制器附加到广告投放配置,以便在广告投放请求中使用:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search?update_mask=boost_control_ids" \ -d '{ "boostControlIds": ["BOOST_ID_1", "BOOST_ID_2" … ] }'
BOOST_ID_1和 BOOST_ID_2:代表 控件 ID。
过滤器控件:点击过滤器控件的 curl 命令。
运行以下 curl 命令,将过滤器控件附加到服务 配置以启用对处理请求的访问权限:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search?update_mask=filter_control_ids" \ -d '{ "filterControlIds": ["FILTER_ID_1", "FILTER_ID_2" … ] }'
FILTER_ID_1 和 FILTER_ID_2:表示您在上一步中创建的控件 ID。
同义词控件:点击此处查看同义词控件的 curl 命令。
运行以下 curl 命令,以将同义词控件附加到应用 对处理请求启用使用:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search?update_mask=synonyms_control_ids" \ -d '{ "synonymsControlIds": ["SYNONYM_ID_1", "SYNONYM_ID_2" … ] }'
SYNONYM_ID_1 和 SYNONYM_ID_2:表示您在上一步中创建的控件 ID。
重定向控件:点击此按钮可查看重定向控件的 curl 命令。
运行以下 curl 命令,将重定向控件附加到应用,以便在处理请求时使用:
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search?update_mask=redirect_control_ids" \ -d '{ "redirectControlIds": ["REDIRECT_ID_1", "REDIRECT_ID_2" … ] }'
REDIRECT_ID_1 和 REDIRECT_ID_2:表示 控件 ID。
后续步骤
- 如需了解投放控制功能对通用搜索应用的搜索质量有何影响,请评估搜索质量。如需了解详情,请参阅评估搜索质量。