【问题标题】:elasticsearch scripting: how to access other buckets in histogramelasticsearch 脚本:如何访问直方图中的其他存储桶
【发布时间】:2018-04-04 01:35:51
【问题描述】:

使用弹性搜索 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 指向当前的桶值,我希望它指向之前的桶值。

谢谢

【问题讨论】:

  • 请分享您目前所拥有的,以更好地说明您想要实现的目标。
  • @Val 我添加了更多细节

标签: elasticsearch


【解决方案1】:

(发现这个搜索相同的问题。它很旧,但在其他地方没有找到答案,所以回答其他人通过搜索到达这里)

你有你需要从“导数”聚合计算前一个值:

"script": "price_change / (price_change - price_abs) * 100"

滞后为 1 的序列差分将使您达到与导数相同的结果。

【讨论】:

    猜你喜欢
    • 2021-06-04
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多