网站如何安装wordpress网络营销与直播电商
使用了 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}}}
}