Синхронизация семпла делает c:
PUT tester/_doc/1
{
"news_ID":"123456",
"news_content":"Apple pencil",
"keywords":[
"apple",
"pencil"
],
"publish_time":"2020-01-03"
}
Использование агрегирования терминов с фильтром диапазона на верхнем уровне:
GET tester/_search
{
"size": 0,
"query": {
"range": {
"publish_time": {
"gte": "2020-01-01",
"lt": "2020-02-01"
}
}
},
"aggs": {
"by_keywords": {
"terms": {
"field": "keywords.keyword"
}
}
}
}
Вы также можно использовать отфильтрованное агрегирование для агрегирования по нескольким ежемесячным сегментам:
GET tester/_search
{
"size": 0,
"aggs": {
"2020-01_2020-02": {
"filter": {
"range": {
"publish_time": {
"gte": "2020-01-01",
"lt": "2020-02-01"
}
}
},
"aggs": {
"by_keywords": {
"terms": {
"field": "keywords.keyword"
}
}
}
},
"2020-02_2020-03": {
"filter": {
"range": {
"publish_time": {
"gte": "2020-02-01",
"lt": "2020-03-01"
}
}
},
"aggs": {
"by_keywords": {
"terms": {
"field": "keywords.keyword"
}
}
}
}
}
}