2013-04-04 8 views
5

Ich verwende Folgendes, um Dokumente in Elasticsearch zu sortieren, die die Eigenschaft 'usernamesAssigned' haben. usernamesAssigned ist ein Array von Strings:Sortierung nach einem String-Array in ElasticSearch

"sort": [ 
    { 
     "_script": { 
      "script": "doc["usernamesAssigned"].values.sort().join()", 
      "type": "string", 
      "lang": "js", 
      "order": "asc" 
     } 
    } 
] 

Ich frage mich, ob es eine effizientere Art und Weise, dies zu tun, ohne Skript basierte Sortierung zu verwenden?

Antwort

3

Dies ist eine alte Frage, aber ich über ihn vor kurzem wanderte bei dem Versuch, das gleiche Problem zu lösen ...

zum documentation nach:

Elasticsearch von Array oder die Sortierung unterstützen mehrwertig Felder. Die Modus-Option steuert, welcher Array-Wert ausgewählt wird, um das Dokument zu sortieren, zu dem es gehört.

Also, sollten Sie in der Lage, so zu sortieren:

"sort" : [ {"usernamesAssigned" : {"order" : "asc", "mode" : "min"}} ]

Dies ist seit Version 0.90.0.Beta1 zur Verfügung.

Verwandte Themen