Yam*_*shi 6 aggregate function aggregation elasticsearch
我创建了一个名为test包含prices嵌套字段的类型.
每个文件可以包含多个价格,每个价格包括price和date:
...
"prices":[{
"date" : "2017-02-08T16:04:20.424Z",
"price" : 120
},
{
"date" : "2017-02-08T17:35:01.424Z",
"price" : 70
}]
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个搜索查询,首先将每个文档的价格汇总到最小值price,然后使用线性衰减函数对聚合返回的所有最小值进行评分
我目前在所有文档上都有一个聚合查询:
{
"query": {
"match_all": {}
},
"aggs" : {
"prices" : {
"nested" : {
"path" : "prices"
},
"aggs" : {
"min_price" : { "min" : { "field" : "prices.price" } }
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回最低价格test.
还有一个线性衰减函数,prices可以对未聚合的所有文档的嵌套进行评分:
{
"query": {
"nested": {
"path": "prices",
"query": {
"function_score": {
"functions": [
{
"linear": {
"prices.price": {
"origin": "50",
"offset": "50",
"scale": "20"
}
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
返回每个文档的分数.问题是,我不知道根据price嵌套prices字段中的内容计算分数.
有任何想法吗?