2013-04-04 7 views
5

में तारों की एक सरणी पर छंटनी मैं Elasticsearch में दस्तावेज़ों को सॉर्ट करने के लिए निम्न का उपयोग कर रहा हूं जिसमें 'usernamesAssigned' संपत्ति है।ElasticSearch

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

वहाँ स्क्रिप्ट आधारित छंटाई का उपयोग किए बिना यह करने के लिए एक अधिक कुशल तरीका है मैं सोच रहा हूँ: usernamesAssigned तार की एक सरणी है?

उत्तर

3

यह एक पुरानी सवाल है, लेकिन मैं हाल ही में यह भर फिरते ही समस्या को हल करने का प्रयास करते हुए ...

documentation के अनुसार:

Elasticsearch सरणी या द्वारा छँटाई का समर्थन करता है बहु-मान खेत। मोड विकल्प नियंत्रित करता है कि दस्तावेज़ को सॉर्ट करने के लिए कौन सा सरणी मान चुना जाता है।

तो, अगर आप इस तरह सुलझाने के लिए सक्षम होना चाहिए:

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

इस संस्करण 0.90.0.Beta1 बाद से उपलब्ध है।