2014-05-19 4 views
11

Benzersiz sayısal çalıştırma kimlikleri olan bir belge koleksiyonum var ve belgeyi en yüksek çalışma kimliğine sahip bulmak istiyorum.Bazı alan için en büyük değeri olan belgeyi bulmak için tek sorgu

Bu iki sorguyu yapabilirim. Ben ile yapabilirsiniz bir yolu var mı

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

: İkinci

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

, bunu çalıştırmak kimliği ile dokümanı bulabilir:

Öncelikle, en yüksek çalışma kimliği bulabilir tek sorgu?

+0

ile rekor dönecektir Eğer büyük id almak istiyoruz? Belki yeni bir belge için bir sonraki uygun kimliği ayarlamak için? –

cevap

19

Sen "tür" ve "boyutu" birleştirerek gerçekleştirebilirsiniz:

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

Bu Ne amaçla en yüksek run_id

+0

Bunu java API kullanarak nasıl yapabiliriz? –