Сводная информация ElasticSearch, сгруппированная по месяцам

Я работаю над запросом ElasticSearch, который должен вернуть мне все документы, в которых поле даты сейчас - 1 год назад, а затем сгруппировать их все по месяцам (давая мне общее количество за каждый месяц), но я не могу написать этот запрос.

Вот что у меня есть:

{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "account_id": [
              1
            ]
          }
        }
      ]
    }
  },
  "aggs": {
    "growth": {
      "date_range": {
        "field": "member_since",
        "format": "YYYY-MM-DD",
        "ranges": [
          {
            "to": "now-1Y/M"
          },
          {
            "from": "now-1Y/M"
          }
        ]
      }
    }
  },
  "size": 100
}

Я запускаю запрос так:

POST https://my-es-cluster-url.com, но я продолжаю получать эту ошибку:

{
  "error": {
    "root_cause": [
      {
        "type": "parse_exception",
        "reason": "unit [Y] not supported for date math [-1Y/M]"
      }
    ],
    "type": "search_phase_execution_exception",
    "reason": "all shards failed",
    "phase": "query_fetch",
    "grouped": true,
    "failed_shards": [
      {
        "shard": 0,
        "index": "index0",
        "node": "MkypXlGdQamAplca1JIgZQ",
        "reason": {
          "type": "parse_exception",
          "reason": "unit [Y] not supported for date math [-1Y/M]"
        }
      }
    ]
  },
  "status": 400
}

person dennismonsewicz    schedule 27.07.2016    source источник
comment
какую версию ES вы используете?   -  person Ibrahim    schedule 28.07.2016


Ответы (1)


Я воспроизвел вашу проблему с более простым запросом к моим данным.

"query": {
    "range": {
       "recent_buy_transaction": {
          "from": "now-1Y"
       }
    }
}

Я получаю ту же ошибку.

ElasticSearchParseException [единица [Y] не поддерживается для математики даты [-1Y]]

Однако использование маленького y решает проблему. Следовательно, вы должны попробовать использовать:

сейчас-1г/м

Из документации.

Поддерживаемые единицы времени: y (год), M (месяц), w (неделя), d (день), h (час), m (минута) и s (секунда).

person Ibrahim    schedule 27.07.2016