2013-04-04 16 views
5

Korzystam z następujących elementów do sortowania dokumentów w Elasticsearch, które mają właściwość "usernamesAssigned". usernamesAssigned jest tablicą ciągów:Sortowanie na tablicy ciągów w ElasticSearch

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

Zastanawiam się, czy istnieje bardziej efektywny sposób to zrobić bez użycia skryptów sortowania w oparciu?

Odpowiedz

3

To stara sprawa, ale ja niedawno wędrował po nim, starając się rozwiązać ten sam problem ...

Według documentation:

Elasticsearch obsługuje sortowanie według tablicy lub wielowartościowy pola. Opcja trybu określa, która wartość jest wybierana do sortowania dokumentu, do którego należy.

Tak, powinieneś być w stanie rozwiązać tak:

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

ta jest dostępna od wersji 0.90.0.Beta1.

Powiązane problemy