2016-07-27 2 views
1

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

Это то, что у меня есть:

{ 
    "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 
} 
+0

, какая версия ES вы используете? – Ibrahim

ответ

1

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

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

У меня такая же ошибка.

ElasticSearchParseException[unit [Y] not supported for date math [-1Y]]

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

now-1y/M

Из documentation

The supported time units are: y (year), M (month), w (week), d (day), h (hour), m (minute), and s (second).

Смежные вопросы