bucket脚本聚合-ElasticSearch

o7jaxewo  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(0)|浏览(260)

我试图在elastic search中构建一个查询,以获得两个值的差:
下面是我使用的代码:

GET /monitora/_search
{
  "size":0,
  "aggs": {
    "CALC_DIFF": {
      "filters": {
        "filters": {
          "FTS_callback": {"term":{ "msgType": "panorama_fts"}},
          "FTS_position": {"term":{ "msgType": "panorama_position"}}
                  }
                },
        "aggs": {
          "subtract": {
            "bucket_script": {
              "buckets_path": {
                "PCountCall": "_count",
                "PcountPos":"_count"
              },
              "script": "params.PCountCall - params.PcountPos"
            }
          }
        }
      }
 }
}

这就是我运行它时得到的结果:

{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "CALC_DIFF" : {
      "buckets" : {
        "FTS_callback" : {
          "doc_count" : 73530,
          "subtract" : {
            "value" : 0.0
          }
        },
        "FTS_position" : {
          "doc_count" : 156418,
          "subtract" : {
            "value" : 0.0
          }
        }
      }
    }
  }
}

但是,我没有在这些桶中得到减法(总是零),而是寻找每个桶上计数的减法,这个例子将返回我(73530-156418)。
之后,我想在kibana中将结果显示为“metric”可视化元素。有可能吗?
谁能帮我把它弄好吗?
提前谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题