Как и в заголовке, у меня проблема с сортировкой агрегации Elasticsearch по текстовому полю.Есть ли возможность сделать это?Использование лучших хитов или что-то вроде этого?Теперь я использую термин агрегация и могу сортировать по полю агрегации, используя _term, но мне нужно отсортировать агрегацию по другому полю.Я знаю, как это сделать с полями с числовым значением.Например, используя max, min, sum и т. Д.
Было бы здорово, если бы я мог сделать это так (но не могу):
"aggs": {
"Variants": {
"terms": {
"field": "variant",
"order": {
"top_Song_hits": "asc"
}
},
"aggs": {
"top_Song_hits": {
"sum": {
"name": {
"order": "desc"
}
}
}
}
}
}
}
или вот так:
{
"aggs": {
"Variants": {
"terms": {
"field": "variant",
"order": {
"name_agg": "asc"
}
},
"aggs": {
"name_agg": {
"terms": {
"field": "name"
}
}
}
}
}
}
Или
{
"aggs": {
"Variants": {
"terms": {
"field": "variant",
"order": {
"details": "asc"
}
},
"aggs": {
"details": {
"top_hits": {
"size": 1,
"_source": {
"include": ["name"]
}
}
}
}
}
}
}
В последнем случае я получаю сообщение об ошибке:
"reason": "Invalid aggregation order path [details]. Buckets can only be sorted on a sub-aggregator path that is built out of zero or more single-bucket aggregations within the path and a final single-bucket or a metrics aggregation at the path end."