我正在使用弹性搜索来构建一个简单的搜索引擎。
我试图确定的一件事是,我希望能够让更多最近发布的文档更接近搜索结果的顶部,因此我使用" exp"衰变函数(高斯)。我显然错过了一些东西,因为它没有像我预期的那样工作。我摆弄这个数字无济于事。
目标是采用这一个查询(除了其中的公式之外),并使其返回结果顶部附近的最新文档。从字面上看,这个查询没有其他部分。我已经包含了"解释"信息的最高结果的一部分。
请帮忙!我不明白......
{
"query": {
"function_score": {
"exp": {
"createdAt": {
"origin": "now",
"scale": "30d",
"decay": 0.8,
"offset": "7d"
}
}
}
}
}
第一个结果有这个值 " createdAt":" 2007-12-07T11:54:04.000Z",
我们有来自2017年的文件 - 前几篇文章来自2007年! 我不明白出了什么问题......
"_explanation": {
"value": 1,
"description": "function score, product of:",
"details": [
{
"value": 1,
"description": "*:*, product of:",
"details": [
{
"value": 1,
"description": "boost",
"details": []
},
{
"value": 1,
"description": "queryNorm",
"details": []
}
]
},
{
"value": 1,
"description": "min of:",
"details": [
{
"value": 1,
"description": "Function for field createdAt:",
"details": [
{
"value": 1,
"description": "exp(- MIN[0.0] * 8.608933306875375E-11)",
"details": []
}
]
},
{
"value": 3.4028235e+38,
"description": "maxBoost",
"details": []
}
]
}
]
}
},