Как агрегировать сasticsearch без запроса при желании добавить диапазон? - PullRequest
0 голосов
/ 25 марта 2019

Код ниже работает, если я не удалил запрос из поиска, но мне не нужно, чтобы результат запроса был только агрегацией. Как я могу добавить диапазон к гистограмме даты?

await client.search({
    index: "console-*",
    body: {
      sort: {
        "@timestamp": {
          order: "desc"
        }
      },
      // query: {
      //   range: {
      //     "@timestamp": {
      //       gte: Date.now() - 15 * 60 * 1000,
      //       format: "epoch_millis"
      //     }
      //   }
      // },
      aggs: {
        series: {
          date_histogram:{
            field: "@timestamp",
            interval: "30s",
            time_zone: "Asia/Shanghai",
            min_doc_count: 1
          }
        }
      }
    },
    size: 0
  });

1 Ответ

1 голос
/ 25 марта 2019

Поскольку вы все еще хотите, чтобы гистограмма была отфильтрована по диапазону, я бы рекомендовал оставить запрос таким, какой он есть. Поскольку вы не хотите, чтобы документы, соответствующие запросу, были возвращены, и все, что вам нужно, это результат агрегирования, все, что вам нужно сделать, это установить "size": 0, как показано ниже:

await client.search({
    index: "console-*",
    body: {
      sort: {
        "@timestamp": {
          order: "desc"
        }
      },
      query: {
        range: {
          "@timestamp": {
            gte: Date.now() - 15 * 60 * 1000,
            format: "epoch_millis"
          }
        }
      },
      aggs: {
        series: {
          date_histogram:{
            field: "@timestamp",
            interval: "30s",
            time_zone: "Asia/Shanghai",
            min_doc_count: 1
          }
        }
      }
    },
    size: 0
  });

ОБНОВЛЕНИЕ: использование агрегирования фильтров

{
  "aggs": {
    "filterdSeries": {
      "filter": {
        "range": {
          "@timestamp": {
            "gte": "now-15m",
            "format": "epoch_millis"
          }
        },
        "aggs": {
          "series": {
            "date_histogram": {
              "field": "@timestamp",
              "interval": "30s",
              "time_zone": "Asia/Shanghai",
              "min_doc_count": 1
            }
          }
        }
      }
    }
  },
  "size": 0
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...