2017-06-06 27 views
1

Hallo Das ist meine Beispielausgabe ElasticsearchElasticsearch Arbeits Art nicht

"table":{ 
    "data":[ 
     { 
     "label":"First Label", 
     "value":"10" 
     }, 
     { 
     "label":"1st Label", 
     "value":"9" 
     } 
    ], 
    "details":"Examples set on MSRP, your actual payment may vary based on price set by dealer." 
} 

Und ich wünsche dies in aufsteigender Reihenfolge zu sortieren, entweder durch die Kolonne Etikett oder durch Wert.

Die Suchoptionen Ich habe versucht, sind

sort = [{"data.label" : {"order" : "asc", "mode" : "min", "nested_path" : "data"}}]; 
sort = [{ "table.data": {"order": "asc"}] 

Aber ich bin

Jede Hilfe zu diesem Thema das erwartete sortiert Ergebnis nicht immer wird stark

Antwort

0

Ihre Art Teil der Abfrage sollte klar sein, sein -

"sort": { "label": { "order": "desc" }} 

oder

"sort": { "value": { "order": "desc" }} 

oder

"sort": [ 
     { "label": { "order": "desc" }}, 
     { "value": { "order": "desc" }} 
    ] 

Im Folgenden finden Sie die Abbildung, Dokumente und nachfolgende Abfrage innere sortierten Elemente zu erhalten.

PUT /table 
{ 
    "mappings": { 
    "data": { 
     "properties": { 
     "name": {"type": "string"}, 
     "subjects": { 
      "type": "nested", 
      "properties": { 
      "name": { "type": "string"}, 
      "marks":{ "type": "integer"} 
      } 
     } 
     } 
    } 
    } 
} 

PUT /table/data/1?pretty 
{ 
    "name":"Ram", 
    "subjects":[ 
    { 
     "name":"English", 
     "marks":13 
    }, 
    { 
     "name":"Hindi", 
     "marks":12 
    } 
    ] 
} 
PUT /table/data/2?pretty 
{ 
    "name":"Sam", 
    "subjects":[ 
    { 
     "name":"Biology", 
     "marks":83 
    }, 
    { 
     "name":"Maths", 
     "marks":68 
    } 
    ] 
} 

PUT /table/data/3?pretty 
{ 
    "name":"Jim", 
    "subjects":[ 
    { 
     "name":"Chemistry", 
     "marks":96 
    }, 
    { 
     "name":"Geology", 
     "marks":58 
    } 
    ] 
} 

GET table/data/_search 
{ 
"query":{ 
    "nested":{ 
    "path":"subjects", 
    "query": { 
     "match_all": {} 
     }, 
    "inner_hits":{ 
     "sort":{ 
     "subjects.marks":{ 
      "order":"asc" 
     } 
     } 
    } 
    } 
} 
} 
+0

Ich versuchte mit allen Kombinationen und es funktioniert nicht. Sollten wir uns für eine verschachtelte Sortierung entscheiden? – Arjun

+0

Können Sie bitte die komplette Anfrage stellen, die Sie machen !! –

+0

Sie finden die Abfrage-URL - /_search? Q = "{" gefiltert ": {" filter ": {" bool ": {" muss ": [{" ids ": {" values ​​": [" search_key " ]}}]} "& sort = {" value ": {" order ":" asc "}} @ – Arjun