Es gibt eine Möglichkeit, Dokumente nach mehreren Attributen zu sortieren. Ich möchte aggregierte Buckets auf die gleiche Weise nach denselben Attributen sortieren. Ist das möglich?Elasticsearch-Buckets nach denselben Attributen wie Dokumente sortieren
Hier sind meine Beispieldokumente:
curl -XPOST 'localhost:9200/_bulk?pretty' -H 'Content-Type:
application/json' -d'
{ "index" : { "_index" : "cars", "_type" : "cars", "_id" : "1" } }
{ "make":"BMW", "series":"3er", "doorCount": 4}
{ "index" : { "_index" : "cars", "_type" : "cars", "_id" : "2" } }
{ "make":"BMW", "series":"3er", "doorCount": 5}
{ "index" : { "_index" : "cars", "_type" : "cars", "_id" : "3" } }
{ "make":"Opel", "series":"Astra", "doorCount": 2}
{ "index" : { "_index" : "cars", "_type" : "cars", "_id" : "4" } }
{ "make":"Opel", "series":"Omega", "doorCount": 2}
'
Here I fielddata auf true bin Einstellung der Lage sein, zu aggregieren:
curl -XPUT 'localhost:9200/cars/_mapping/cars?pretty' -H 'Content-Type: application/json' -d'
{
"properties": {
"make": {
"type": "text",
"fielddata": true
},
"series": {
"type": "text",
"fielddata": true
}
}
}
'
Hier ist die Abfrage aggregiert Eimer:
curl -XGET 'localhost:9200/cars/cars/_search?pretty' -d'
{
"size": 0,
"aggregations" : {
"CARS" : {
"terms" : {
"script" : {
"inline" : "doc[\"make\"].value + \"_\" + doc[\"series\"].value",
"lang" : "painless"
}
},
"aggregations" : {
"make" : {
"terms" : { "field" : "make"}
},
"series" : {
"terms" : { "field" : "series" }
}
}
}
}
}
'
Haben Sie eine Idee, wie Sie Eimer nach Marke und Serie sortieren?
Ich möchte wie zu meiner Anfrage Art von 'sort' Parameter hinzuzufügen, wenn ich normale Dokumente bin Sortierung:' "sort": [ { "Serie": "ab"}, { "make" : "asc"} ] ', so dass die Auftrags-Buckets zuerst nach Serien sortiert und dann nach Sekunden sortiert werden –