网站开发怎么学习,高中教做网站的软件,长网页网站,百度官方免费下载安装使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分#xff1a;
query: 包含了实际执行搜索的部分#xff0c;在这里包括一个 multi_match 查询。
multi_match#xff1a;用于在多个字段上执行相同的查询。
query#xff1a;设置…使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分
query: 包含了实际执行搜索的部分在这里包括一个 multi_match 查询。
multi_match用于在多个字段上执行相同的查询。
query设置为 popularity表示要搜索包含这个短语的文档。
fields指定了要在其中执行查询的字段列表这里是 title 和 content 字段。
function_score允许您通过将查询结果重新评分来自定义和影响每个文档的得分。
field_value_factor基于字段的具体值来影响文档的得分。
field指定了作为因子的字段这里是 votes 字段。
modifier: 使用 log1p 函数对字段的值应用 log(1 value) 函数来调整得分。这种调整通常用于处理大量的小值以平衡分数的影响。
factor: 设置了一个乘法因子为 0.1用于进一步调整字段值对得分的影响力。
boost_mode: 设置为 sum表示将所有子查询的分数相加以计算最终得分。
max_boost: 设置了最大提升值为 3即最终得分不会超过 3 倍。
换句话说这个查询的目的是
在 title 和 content 字段中搜索包含短语 popularity 的文档。
根据文档中 votes 字段的值并对其应用log1p函数使用乘法因子 0.1 进一步调整每个文档的得分。
最终得分由子查询得分和基于 votes 字段的加权因素相加但不会超过 3。 random_score: 通过指定种子值 XXXX 来生成随机分数影响每个文档的得分 DELETE blogsPUT /blogs/_doc/1
{title: About popularity,content: In this post we will talk about...,votes: 0
}PUT /blogs/_doc/2
{title: About popularity,content: In this post we will talk about...,votes: 100
}PUT /blogs/_doc/3
{title: About popularity,content: In this post we will talk about...,votes: 1000000
}# 使用了 function_score 查询来根据某个字段的值对查询结果进行打分。以下是该查询的主要部分
# query: 包含了实际执行搜索的部分在这里包括一个 multi_match 查询。
# multi_match用于在多个字段上执行相同的查询。
# query设置为 popularity表示要搜索包含这个短语的文档。
# fields指定了要在其中执行查询的字段列表这里是 title 和 content 字段。
# function_score允许您通过将查询结果重新评分来自定义和影响每个文档的得分。
# field_value_factor基于字段的具体值来影响文档的得分。
# field指定了作为因子的字段这里是 votes 字段。
POST /blogs/_search
{query: {function_score: {query: {multi_match: {query: popularity,fields: [ title, content ]}},field_value_factor: {field: votes}}}
}POST /blogs/_search
{query: {function_score: {query: {multi_match: {query: popularity,fields: [ title, content ]}},field_value_factor: {field: votes,modifier: log1p}}}
}# function_score: 允许您根据不同的因素自定义和调整文档的得分。
# field_value_factor: 基于字段的值来影响文档的得分。
# field: 指定了作为权重因子的字段这里是 votes 字段。
# modifier: 使用 log1p 函数对字段的值应用 log(1 value) 函数来调整得分。这种调整通常用于处理大量的小值以平衡分数的影响。
POST /blogs/_search
{query: {function_score: {query: {multi_match: {query: popularity,fields: [ title, content ]}},field_value_factor: {field: votes,modifier: log1p ,factor: 0.1}}}
}# function_score: 允许您根据不同的因素自定义和调整文档的得分。
# field_value_factor: 基于字段的值来影响文档的得分。
# field: 指定了作为权重因子的字段这里是 votes 字段。
# modifier: 使用 log1p 函数对字段的值应用 log(1 value) 函数来调整得分。这种调整通常用于处理大量的小值以平衡分数的影响。
# factor: 设置了一个乘法因子为 0.1用于进一步调整字段值对得分的影响力。
# boost_mode: 设置为 sum表示将所有子查询的分数相加以计算最终得分。
# max_boost: 设置了最大提升值为 3即最终得分不会超过 3 倍。
# 换句话说这个查询的目的是
# 在 title 和 content 字段中搜索包含短语 popularity 的文档。
# 根据文档中 votes 字段的值并对其应用log1p函数使用乘法因子 0.1 进一步调整每个文档的得分。
# 最终得分由子查询得分和基于 votes 字段的加权因素相加但不会超过 3。
POST /blogs/_search
{query: {function_score: {query: {multi_match: {query: popularity,fields: [ title, content ]}},field_value_factor: {field: votes,modifier: log1p ,factor: 0.1},boost_mode: sum,max_boost: 3}}
}# random_score: 通过指定种子值 911119 来生成随机分数影响每个文档的得分
# 使⽤场景⽹站的⼴告需要提⾼展现率
# 具体需求让每个⽤户能看到不同的随机排名但是也希望同⼀个⽤户访问时结果的相对顺序保持⼀致(Consistently Random)
POST /blogs/_search
{query: {function_score: {random_score: {seed: 911119}}}
}