Агрегация скриптов корзины — эластичный поиск

#elasticsearch #elastic-stack #kibana-7

#elasticsearch #эластичный-стек #kibana-7

Вопрос:

Я пытаюсь создать запрос в эластичном поиске, чтобы получить разницу в двух значениях:

Вот код, который я использую:

 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. Возможно ли это?

Может ли кто-нибудь помочь мне сделать это правильно?

Заранее спасибо!

Комментарии:

1. У кого-нибудь есть идеи, как я могу продолжить?

2. вы решили это?