Мне нужен запрос агрегации, чтобы получить корзину со всеми моими папками root. Все документы в моемasticsearch имеют поле с именем path, в котором я храню массив с путями, в которых находится документ (например, path = [1.3., 1.2.4, 5., 11]).
Если я используйте обычное агрегирование терминов
"terms": {
"field": "path.keyword"
}
Я, к сожалению, получаю все уникальные пути:
"buckets" : [
{
"key" : "1.3."
"doc_count" : 6
},
{
"key" : "11."
"doc_count" : 3
},
{
"key" : "5."
"doc_count" : 3
},
{
"key" : "1.2.4."
"doc_count" : 1
}
]
Я пытался решить его с помощью безболезненного сценария
"terms": {
"script": "doc['path.keyword'].value.substring(0, doc['path.keyword'].value.indexOf('.') )"
}
но тогда я получаю только последние элементы моего массива пути
"buckets" : [
{
"key" : "1",
"doc_count" : 7
},
{
"key" : "11",
"doc_count" : 3
}
]
как мне получить только папки root?