Le tri après agrégation dans Elasticsearch
J'ai des docs avec cette structure:
{
FIELD1:string,
FIELD2:
[ {SUBFIELD:number}, {SUBFIELD:number}...]
}
Je veux trier sur le résultat de la somme des nombres dans CHAMP2.Sous-zones:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
Si je fais cela je obtenir des seaux non triés, mais je veux seaux classés par "a2" de la valeur.
Comment je peux faire cela?
Merci!!!!
OriginalL'auteur maxv15 | 2015-06-10
Vous devez vous connecter pour publier un commentaire.
C'est presque ça. Vous avez juste besoin d'ajouter un
de la propriété à votre
a1
termes d'agrégats, comme ceci:Merci! Sauvé ma journée! Ne pouvais pas trouvé sur la doc, et c'était tellement évident 🙂
la documentation ou de la commande de termes agrégations ici
ce n'est pas de travailler quand
a2
est unscripted_metric
agrégation. Je l'ai utilisé pour mon cas que je dois utiliserscripted_metric
agrégation. J'ai eu cette erreur"reason": { "type": "aggregation_execution_exception", "reason": "Invalid terms aggregation order path [totalViews]. Terms 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." }
Correct, il y a un ouvrir PR et un question à ce sujet.
OriginalL'auteur Val