Получить уникальные данные из поля, используя DSL-запрос ElasticSearch в Кибане - PullRequest
0 голосов
/ 22 апреля 2020

У меня уже есть различные запросы, которые собирают данные и отображают их на панели управления Kibana. Теперь я хотел бы получить уникальные значения из моих данных результатов. Как я могу написать запрос DSL для этого.

В основном я хотел бы получить уникальное значение для поля contextMap.connectionid. Есть ли способ добиться этого, используя что-то похожее на этот пример?

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "app",
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "app.key": "contextMap.connectionid"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}

1 Ответ

0 голосов
/ 22 апреля 2020

Вы можете рассчитать различное количество с помощью агрегации. Итак, ваш поисковый запрос:

Поисковый запрос:

{
    "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "app",
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "app.key": "contextMap.connectionid"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  },
    "aggs": {
        "uniqueconnectionId": {
            "terms": {
                "field": "contextMap.connectionid.keyword"
            }
        }
    }
}

Здесь вы можете обратиться для расчета различных значений поля https://discuss.elastic.co/t/get-distinct-values-from-a-field-in-elasticsearch/99783

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...