Я делаю вложенную агрегацию в год, а затем каждую неделю каждый год в elasticsearch. Високосные годы имеют 53 недели, но результат ElasticSearch дает последнюю неделю ключа високосного года = «1», а не «53». Как я могу заставить ElasticSearch возвращать 53 вместо 1 за последнюю неделю?Високосный год и скопления в неделю в ElasticSearch
Вот мой запрос:
GET _search
{
"size": 0,
"aggs": {
"activities_per_year": {
"date_histogram": {
"field": "start",
"interval": "1y",
"format": "yyyy"
},
"aggs": {
"activities_per_week": {
"date_histogram": {
"field": "start",
"interval": "week",
"format": "w"
}
}
}
}
}
}
И результат (удаленные данные в середине):
"key_as_string": "2008",
"key": 1199145600000,
"doc_count": 872,
"activities_per_week": {
"buckets": [
{
"key_as_string": "1",
"key": 1199059200000,
"doc_count": 6
},
{
"key_as_string": "2",
"key": 1199664000000,
"doc_count": 5
},
{
"key_as_string": "3",
"key": 1200268800000,
"doc_count": 15
}, {
"key_as_string": "51",
"key": 1229299200000,
"doc_count": 18
},
{
"key_as_string": "52",
"key": 1229904000000,
"doc_count": 7
},
{
"key_as_string": "1",
"key": 1230508800000,
"doc_count": 1
}
]
2008 високосный год, а на прошлой неделе "key_as_string": " 1" . Я хочу, чтобы это было 53, поэтому я могу добавить его в свой словарь :) Как я могу это сделать?
Кроме того, elasticsearch возвращает две недели с «key_as_string»: «1» на 2013 год, и я не думаю, что 2013 год - високосный год?
Спасибо за отличные объяснения :-) Но почему не Elasticsearch «отфильтровывать» дату с 2009 года, когда моя первая агрегация имеет интервал: 1y? Я думал, что мой подагрегированный «activity_per_week» получил его от документов, соответствующих «activity_per_year» -агрегации? – Thomas
Это хороший вопрос. На данный момент у меня нет ответа. –