使用elasticsearch 2.3.3
我有 date_histogram ,里面有bucket_script。在脚本中,我想在当前存储桶上使用一些聚合(没有问题),但在前一个存储桶上也使用聚合。我没有看到任何方法来访问脚本中的其他存储桶。
我错过了什么或是不可能吗?
这是我的问题:
curl -XPOST "http://$ESHOST:$ESPORT/$INDEX_NAME/_search?pretty" -d '
{
"size": 0,
"aggs" : {
"s_price" : {
"date_histogram" : {
"field" : "a_date",
"interval" : "month",
"format" : "yyyy-MM"
},
"aggs" : {
"median_price": { "percentiles": { "field": "s_price", "percents": [50] } },
"median_price_change": { "derivative": { "buckets_path": "median_price.50" }},
"median_percent_change": {
"bucket_script": {
"gap_policy" : "insert_zeros",
"buckets_path": {
"price_change": "median_price_change",
"price_abs": "median_price.50"
},
"script": "price_change / price_abs * 100"
}
}
}
}
}
}'
而不是 price_abs 指向当前的存储区值,我希望它指向前一个存储区值。
感谢
答案 0 :(得分:0)
(发现这个搜索同样的问题。它已经老了,但是没有找到其他地方的答案,所以回答其他人通过搜索来到这里)
你有你需要的东西来计算"衍生物"聚合:
"script": "price_change / (price_change - price_abs) * 100"
延迟为1的串行差分将使得与导数相同。