Как получить процентили для нескольких полей в одном запросе ElasticSearch

Я научился писать ES-запрос для вычисления процентиля, но, похоже, он работает для одного поля. Если мне нужен процентиль для нескольких полей, это не сработает.

 "aggs": {
        "distinct_UUID": {
            "terms": {
                "field": "cust_uuid"
            },
                "aggs": {
                  "perf_percentiles" : {
                "percentiles" : {
      "field":"A",
      "field":"B"
      }
      }

Приведенный выше код отлично работает, если у меня есть только одно поле (поле A или B, но не оба) в разделе процентилей, но я хочу иметь 10 полей или более. Как я могу решить эту проблему?


person Sam G    schedule 17.04.2017    source источник


Ответы (1)


Просто добавьте дополнительные подгруппы, по одной для каждого поля:

{
  "aggs": {
    "distinct_UUID": {
      "terms": {
        "field": "cust_uuid"
      },
      "aggs": {
        "percentile_a": {
          "percentiles": {
            "field": "A"
          }
        },
        "percentile_b": {
          "percentiles": {
            "field": "B"
          }
        },
        "percentile_c": {
          "percentiles": {
            "field": "C"
          }
        }
      }
    }
  }
}
person Val    schedule 18.04.2017
comment
Спасибо! Это было полезно. Я использую Полное руководство по ES с веб-сайта. Есть ли другие ссылки, которые вы рекомендуете? - person Sam G; 18.04.2017
comment
Круто, рад, что помогло. Это и официальная документация — хорошее начало. - person Val; 18.04.2017