gpt4 book ai didi

elasticsearch - Elastic Search 中的 weight function_score 函数

转载 作者:行者123 更新时间:2023-12-02 22:17:41 25 4
gpt4 key购买 nike

我想对 function_score 中的每个函数进行不同的加权。我有一个常规的文本查询,混合了基于日期的衰减和地理查询。我想减少基于日期衰减的权重。在一些旧文档上,我看到了 scale_weight function_score 的选项,但我不再看到它了。这是我的查询:
"query": {
"function_score": {
"query": {
"query_string": {
"query": "my query",
"default_operator": "OR"
}
},
"functions": [
{
"script_score": {
"script": "_score * doc[\"rgScore\"].value"
}
},
{
"gauss": {
"location": {
"origin": {
"lat": 49.4928119,
"lon": -117.2948343
},
"scale": "100km",
"offset": "10km",
"decay": 0.5
}
}
},
{
"exp": {
"start": {
"origin": "2014-06-20",
"scale": "90d",
"offset": "0d",
"decay": 0.01
}
}
}
],
"filter": {
"range": {
"start": {
"gte": "2014-06-20"
}
}
}
}
},

最佳答案

function score query 的文档描述了如何做到这一点,您也可以查看 this tutorial .

总之,您可以为每个函数添加权重(对于 1.4.0.Beta1 之后的版本)或 boost_factor(对于之前的版本)属性,它会适本地修改每个子句的贡献。

对于您的情况,例如:

{
"exp": {
"start": {
"origin": "2014-06-20",
"scale": "90d",
"offset": "0d",
"decay": 0.01
}
},
"weight" : 0.2
}

应该可以工作 - 如果您有 1.4.0.Beta1 之前的版本,请尝试将“weight”替换为“boost_factor”。

权重始终与其他函数子句相关,因此您可能还需要调整这些子句以获得所需的结果。

关于elasticsearch - Elastic Search 中的 weight function_score 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24336664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com