TLDR: как осуществить вложенную агрегацию с преобразованиями? В более общем смысле: как хранить агрегаты во время индекса?
Я пытаюсь использовать новое бета-преобразование функций эластичного поиска. Мое агрегирование выглядит следующим образом:
{
"query": {
"bool": {
"should": [
{
"match_all": {}
}
]
}
},
"aggs": {
"event": {
"nested": {
"path": "site_document"
},
"aggs": {
"inspection_per_agency": {
"terms": {
"field": "site_document.document_type_kw"
},
"aggs": {
"action_per_event_type": {
"value_count": {
"field": "site_document.id"
}
}
}
}
}
}
}
}
И это преобразование, которое я создал
PUT /_transform/transformation1
{
"source": {
"index": "site_source"
}
,
"pivot": {
"group_by": {
"id": {
"nested": {
"path": "site_document"
},
"terms": {
"field": "site_document.document_type_kw"
}
}
},
"aggregations": {
"count_id": {
"nested": {
"path": "site_document"
},
"value_count": {
"field": "site_document.id" }
}
}
},
"dest": {
"index": "site_dest"
},
"frequency": "1s"
}
Это возвращает ошибку
No enum constant org.elasticsearch.xpack.core.transform.transforms.pivot.SingleGroupSource.Type.NESTED
Вы знаете, что такое синтаксис должно быть?
Более подробно ниже (пример отображения и данных):
{
"mappings": {
"dynamic": "strict",
"properties": {
"id": {
"type": "long"
},
"site_name_kw": {
"type": "keyword",
"normalizer": "govz_normalizer",
"copy_to": "site_name_txt"
},
"site_document": {
"type": "nested",
"properties": {
"id": {
"type": "long"
},
"document_type_kw": {
"type": "keyword",
"normalizer": "govz_normalizer",
"copy_to": "site_document_type_txt"
}
}
}
}
}
}
{
"id": 67,
"site_name_kw": "site1",
"site_document": [
{
"id": 13,
"document_type_kw": "type1"
},
{
"id": 34,
"document_type_kw": "type2"
},
{
"id": 56,
"document_type_kw": "type3"
},
{
"id": 34,
"document_type_kw": "type1"
}
]
}