您可以在搜索请求中指定升位或降位条件 特定文档。当文档满足指定的 系统会对其应用增强值,并对结果进行排序 。您还可以指定自定义数值和时间戳值,以便根据热门程度和新鲜度等参数对结果进行排序。
搜索请求中的升位规范与升位控件中的升位规范不同
附加到服务配置的资源boostSpec
字段中的提升规范会替换广告投放配置的 boostAction
字段中定义的提升控制。如需详细了解增强控件,请参阅
效果提升控件简介。
本页面介绍了以下类型的提升规范:
您可以将这些增强规范应用于查询媒体搜索应用和 包含结构化、非结构化数据和网站数据的一般搜索应用。 这些规范不适用于医疗保健搜索应用。
使用固定条件进行升位
要根据条件是否满足将结果提高固定金额, 执行以下操作:
发送
servingConfigs.search
请求时,在boostSpec
字段中指定提升规范。{ "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boost": BOOST_VALUE } } }
该规范包含以下参数:
BOOST_CONDITION
: 文本过滤器表达式 以选择要应用升位的文档。过滤器必须评估 布尔值。BOOST_VALUE
:介于 -1 和 1 之间的浮点数。当该值为负时,相应结果会被降级(在结果中显示在更低的位置)。如果值为正数,系统会升级结果 (这类广告显示在结果中靠前的位置)。
用例示例
假设您的数据存储区包含有关酒店及其星级的数据。您希望
提升星级评分不低于 3 的酒店。星级是
(位于 star_rating
数字字段中)。您可以指定 condition
在 boostSpec
中设置为 star_rating >= 3.0
,并将增强值设为 0.7 以进行增强
所有 star_rating
为 3.0 或更高等值的酒店。
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": "star_rating>=3.0",
"boost": 0.7
}
}
}
使用自定义数值属性进行升位
您可以根据自定义数值属性在 分段线性 方法是指定控制点及其对应的增强值。
要使用自定义数值属性指定升位规范,请执行以下操作: 执行以下操作:
发送
servingConfigs.search
请求时,在boostSpec
字段中指定提升规范。{ "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boostControlSpec": { "attributeType": "NUMERICAL", "interpolationType": "LINEAR", "fieldName": "CUSTOM_ATTRIBUTE_FIELD_NAME", "controlPoints": [ { "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_1", "boostAmount": BOOST_AMOUNT_1 }, { "attributeValue": "CUSTOM_ATTRIBUTE_VALUE_2", "boostAmount": BOOST_AMOUNT_2 } ] } } } }
该规范包含以下参数:
BOOST_CONDITION
: 文本过滤器表达式 以选择要应用升位的文档。过滤条件的求值结果必须为布尔值。CUSTOM_ATTRIBUTE_FIELD_NAME
:自定义数值属性的字段名称,其值决定了提升幅度。CUSTOM_ATTRIBUTE_VALUE
: 自定义属性。例如"3.3"
或"12"
。如需了解详情,请参阅 ControlPoint。BOOST_AMOUNT
:映射到给定控制点的自定义属性的增强量。
当搜索结果中的文档满足指定条件时,系统会按如下方式应用提升幅度:
特性值 | 提升金额 |
---|---|
小于第一个控制点 | 等于第一个控制点的增强量 |
等于对照点 | 等于映射的提升幅度 |
控制点之间 | 通过线性插值计算得出 |
大于最后一个控制点 | 等于最后一个控制点的增强量 |
用例示例
假设您的数据存储区包含有关酒店及其星级的数据。您希望根据酒店的星级来提升酒店搜索结果的排名。您可以按如下方式定义提升规范:
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": "star_rating >= 3.0",
"boostControlSpec": {
"attributeType": "NUMERICAL",
"interpolationType": "LINEAR",
"fieldName": "star_rating",
"controlPoints": [
{
"attributeValue": "3.5",
"boostAmount": 0.25
},
{
"attributeValue": "4.0",
"boostAmount": 0.30
},
{
"attributeValue": "4.5",
"boostAmount": 0.32
}
]
}
}
}
}
对于此场景,搜索结果会按如下方式提升排名:
星级 | 提升金额 |
---|---|
小于或等于 3.5 | 0.25 |
介于 3.5 和 4.0 之间 | 介于 0.25 和 0.30 之间(使用线性插值法计算得出) |
等于 4.0 | 0.30 |
介于 4.0 到 4.5 之间 | 介于 0.30 和 0.32 之间,使用线性插值法计算得出 |
大于或等于 4.5 | 0.32 |
根据新鲜度提升排名
您可以根据日期时间属性在 分段线性 方法是指定控制点及其对应的增强值。
如需使用自定义日期时间属性指定升位规范,请执行以下操作: 执行以下操作:
在
boostSpec
中指定升位规范 字段。servingConfigs.search
。{ "boostSpec": { "conditionBoostSpecs": { "condition": "BOOST_CONDITION", "boostControlSpec": { "fieldName": "DATETIME_FIELD_NAME", "attributeType": "FRESHNESS", "interpolationType": "LINEAR", "controlPoints": [ { "attributeValue": "DURATION_VALUE_1", "boostAmount": BOOST_AMOUNT_1 }, { "attributeValue": "DURATION_VALUE_2", "boostAmount": BOOST_AMOUNT_2 } ] } } } }
该规范包含以下参数:
BOOST_CONDITION
: 文本过滤器表达式 以选择要应用升位的文档。过滤器必须评估 布尔值。DATETIME_FIELD_NAME
:自定义DATETIME
属性(例如发布日期或上次更新日期)或 Google 推断出的预定义属性(例如datePublished
)的字段名称。DURATION_VALUE
:dayTimeDuration
数据类型中的时长值,用于确定文档的新鲜度。该值的计算公式为: 执行搜索的日期时间与日期时间之间的时长 一个文档自定义日期时间属性的格式。时长值必须为 (符合 ISO 8601 格式,格式为[nD][T[nH][nM][nS]]
。例如,2024 年 1 月 1 日至 2024 年 3 月 1 日之间的时长可以表示为59D
。同样, 半天可以表示为2DT12H
。如需了解详情,请参阅控制点。BOOST_AMOUNT
:映射到给定控制点的自定义日期时间属性的提升幅度。
当搜索结果中的文档满足指定条件时,系统会按如下方式应用提升幅度:
时长值 | 提升金额 |
---|---|
小于第一个控制点 | 等于第一个控制点的增强量 |
等于给定控制点 | 等于映射的提升幅度 |
在控制点之间 | 通过线性插值计算得出 |
高于上一个控制点 | 等于最后一个控制点的增强量 |
使用自定义日期时间属性的示例用例
假设您的数据存储区包含结构化数据,其中每个文档都有一个 发布日期。您希望根据搜索结果的新鲜度来提升其排名。您可以按如下方式定义提升规范:
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": true,
"boostControlSpec": {
"fieldName": "publication_date",
"attributeType": "FRESHNESS",
"interpolationType": "LINEAR",
"controlPoints": [
{
"attributeValue": "7D",
"boostAmount": 0.40
},
{
"attributeValue": "30D",
"boostAmount": 0.37
},
{
"attributeValue": "60D",
"boostAmount": 0.32
},
{
"attributeValue": "90D",
"boostAmount": 0
}
]
}
}
}
}
在这种情况下,系统会按如下方式提升搜索结果:
时效性 | 提升金额 |
---|---|
小于或等于 7 天 | 0.40 |
7 至 30 天 | 介于 0.40 和 0.37 之间,使用线性插值法计算得出 |
等于 30 天 | 0.37 |
30 至 60 天 | 介于 0.37 和 0.32 之间(使用线性插值法计算得出) |
等于 60 天 | 0.32 |
60 至 90 天 | 介于 0.32 和 0.0 之间,使用线性插值法计算得出 |
大于或等于 90 天 | 0.0 |
使用 Google 推断的网页日期的示例用例
在抓取网站数据存储区中的网页时,Google 会使用适用于您内容的属性推断出网页数据。Vertex AI Search 会将这些推断的页面数据属性添加到您的 架构。这些推断数据 包含以下预定义的日期属性:
datePublished
:网页的首次发布日期和时间dateModified
:网页最近一次修改的日期和时间
系统会自动为这些媒体资源编制索引。您可以直接使用这些日期属性来丰富搜索结果,而无需将其添加到架构中。您可以使用这些预定义的房源属性来提升网页的效果。例如,您可以
将 fieldName
字段设置为
pageModified
,如下所示:
{
"boostSpec": {
"conditionBoostSpecs": {
"condition": true,
"boostControlSpec": {
"fieldName": "dateModified",
"attributeType": "FRESHNESS",
"interpolationType": "LINEAR",
"controlPoints": [
{
"attributeValue": "7D",
"boostAmount": 0.35
},
{
"attributeValue": "30D",
"boostAmount": 0.30
}
]
}
}
}
}
Google 会尽力推断这些日期,但推断出的日期可能与实际日期不符。只有在 Google 有较高置信度时,才会填充这些字段。如果缺少这些日期值,这些字段将变为可为 null。
Google 建议您最好将域名所有者或网站 管理员会为您的网页更新这些属性 手动刷新 Vertex AI Search 网站数据 。有关详情,请参阅帮助 Google 搜索知道您网页的最佳日期 页面博文,了解结构化数据在 Google 中的运作方式 搜索。
如需添加自定义结构化数据属性以丰富索引,请参阅向数据存储方案添加自定义结构化数据属性
使用相关性过滤条件控制升幅
除了影响搜索结果排名的因素之外,例如
关键字匹配、内容匹配和相关性,则提升条件会影响
成效显著。因此,你必须小心地校准升位幅度
尤其是在将 boostSpec
字段与相关性过滤条件结合使用时。如需详细了解相关性过滤条件,请参阅按文档级相关性过滤搜索结果。
假设您有不同发布日期的不同文档。对于特定查询,下表表示未实现任何提升幅度或相关性过滤条件时的绝对排名,并指示要查询的文档的相关性。
文档 | 发布日期 | 相关性 | 排名 |
---|---|---|---|
A | 2024 年 2 月 1 日 | 高 | #1 |
B | 2024 年 3 月 1 日 | 高 | #2 |
C | 2024 年 4 月 1 日 | 最低 | #3 |
D | 2024 年 5 月 1 日 | 中 | #4 |
E | 2024 年 6 月 1 日 | 低 | #5 |
2024 年 6 月 6 日,您在搜索请求中添加了以下搜索条件:
- 相关性过滤条件设置为“
LOW
”。 - 提升值,以便提升过去 31 天内发布的文档数 的默认值为 0.7, 提升了 0.6。
在搜索结果中,系统会先按相关性过滤结果,然后再应用提升幅度。因此,应用的条件会改变 网页在搜索结果中的排名:
文档 | 发布日期 | 相关性 | 排名 |
---|---|---|---|
E | 2024 年 6 月 1 日 | 低 | #1 |
D | 2024 年 5 月 1 日 | 中 | #2 |
A | 2024 年 2 月 1 日 | 高 | #3 |
B | 2024 年 3 月 1 日 | 高 | #4 |
由于相关性过滤条件,相关性最低的结果已被滤除。 与查询相关性较低的文档会排在排名靠前的结果中 因为这会大幅提升这些积分相关性越高,排名就越低。
因此,Google 建议您从精确的较低值开始设置加权金额,并根据搜索结果调整该值。在此示例中 如果开始时先使用 0.1 或更小的提升量, 顶部。