2016-11-29 3 views
0

некоторых данных в elasticsearch, как это:в elasticsearch как писать скопления условия для того, чтобы сгруппировать по времени за 5 минут

{"info":"fwefwefwef","is_fail":0,"result":404,"key":"845722d85520c91f345b08aba3233c96","duration":1,"lts_at":1479786902} 

«lts_at является» меткой времени, и я хочу, чтобы сгруппировать по DATAS в «пол (lts_at/300) '

Как написать запрос на агрегирование?

+0

Каков результат, который вы получаете от aggs, о котором вы упомянули выше? – Kulasangar

ответ

0

Вы можете попробовать с помощью date_histogram aggregation с интервалом 5 минут, а не, как это:

{ 
    "aggs" : { 
     "per_5minute" : { 
      "date_histogram" : { 
       "field" : "lst_at", 
       "interval" : "5m" 
      } 
     } 
    } 
} 

Если вы хотите придерживаться terms агрегации, то вам необходимо использовать скрипт вместо:

{ 
"aggs": { 
    "per_5minute": { 
     "terms": { 
      "script": { 
       "inline": "Math.floor(doc.lst_at.value/300)" 
      } 
     } 
    } 
} 

Для этого вам необходимо enable dynamic scripting

+0

Вам повезло? – Val

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

  • Нет связанных вопросов^_^