2014-05-19 6 views
11

मुझे ऐसे दस्तावेजों का संग्रह मिला है जिनमें अद्वितीय संख्यात्मक रन आईडी हैं, और मैं दस्तावेज़ को उच्चतम रन आईडी के साथ ढूंढना चाहता हूं।कुछ फ़ील्ड के लिए सबसे बड़ा मान वाला दस्तावेज़ ढूंढने के लिए एकल क्वेरी

मैं उन दो प्रश्नों को कर सकता हूं।

{ 
    "size": 0, 
    "aggregations": { 
     "latest_run_id": { 
     "aggregations": { 
      "latest_run_id": { 
      "max": {"field": "run_id"} 
      } 
     } 
     } 
    } 
} 

दूसरे, मुझे लगता है कि रन आईडी के साथ दस्तावेज़ पा सकते हैं::

सबसे पहले, मैं सर्वाधिक रन आईडी पा सकते हैं

{ 
    "filter": { 
     {"term": {"run_id": latest_run_id}} 
    } 
} 

वहाँ एक रास्ता मैं एक साथ ऐसा कर सकते है एक प्रश्न?

+0

किस उद्देश्य के लिए साथ रिकॉर्ड वापस आ जाएगी आप सबसे बड़ा आईडी पुनः प्राप्त करना चाहते हैं? शायद एक नए दस्तावेज़ के लिए अगली उपलब्ध आईडी सेट करने के लिए? –

उत्तर

19

आप "प्रकार" और "आकार" के संयोजन से ऐसा कर सकते हैं:

`{ 
    "filter" : { 
    "match_all" : { } 
    }, 
    "sort": [ 
    { 
     "run_id": { 
     "order": "desc" 
     } 
    } 
    ], 
    "size": 1 
}` 

यह उच्चतम run_id

+0

जावा एपीआई का उपयोग करके हम इसे कैसे प्राप्त कर सकते हैं? –

संबंधित मुद्दे