2016-07-13 14 views
1

Elasticsearch-Sortierung funktioniert nicht im verschachtelten Feld. Es zeigt eine Mischung aus aufsteigenden und absteigenden Werten. Wie 40, 30, 50. Es zeigt nicht in aufsteigender Reihenfolge wie folgt aus: 30, 40, 50Elasticsearch-Sortierung funktioniert nicht im verschachtelten Feld

Abfrage:

"sort": [ 
    { 
     "sellerInfoES.offerPrice": { 
     "order": "asc", 
     "ignore_unmapped": true, 
     "missing": "_last" 
     } 
    } 
    ] 
+1

zeigen Bitte geben Sie die Daten, die auch das unerwartete Ergebnis in Ihrem Beitrag verursacht. – YakovL

Antwort

1

auf einem verschachtelten Feld Sortierung ist schwer, das Problem ist, dass Sie mehrere verschachtelte docs haben können, so dass Sie entscheiden müssen Welches Dokument soll ausgewählt werden? Eine Möglichkeit besteht darin, den Mindestwert eines bestimmten Felds in den verschachtelten Dokumenten zu haben und nach diesem Wert zu sortieren. Sie können dies unter Verwendung der Modus Eigenschaft tun. Sie benötigen auch die verschachtelte_Pfad Eigenschaft.

"sort" : [ 
     { 
      "sellerInfoES.offerPrice" : { 
      "mode" : "avg", 
      "order" : "asc", 
      "nested_path" : "sellerInfoES" 
      } 
     } 
    ] 

Mehr Informationen im Elasticsearch Referenz gefunden werden kann:

Es sollte so etwas wie dieses https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-sort.html#_nested_sorting_example

Verwandte Themen