2014-07-15 3 views

cevap

3

Top _id türünü almak ister misiniz?

{ 
    "fields": [ 
    "_id" 
    ], 
    "query": { 
    "match_all": {} 
    }, 
    "sort": { 
    "_id": "desc" 
    }, 
    "size": 1 
} 
3

Bu sorguyu 1.4.2'de test ettim. Herhangi bir haritalama ile çalışmalıdır, çünkü sadece ElasticSearch ID'de yerleşik olarak sıralayabilirsiniz. Kendi kimlik alanınızı kullanıyorsanız, haritanıza bağlı olarak çalışmayabilir veya çalışmayabilir. Bunu dene ve nasıl çalıştığını bana bildirin.

senin tipin fruit denir varsayarak: Ayrıca, bir belgede belirli bir alanının maksimum değeri elde etmek Max Aggregation (1.3 beri) kullanabilirsiniz

{ 
    'filter': { 
    'type' : { 
     'value' : 'fruit' 
    } 
    }, 
    'sort': { 
    '_id': { 
     'order': 'desc' 
    } 
    }, 
    'size': 1 
} 
7

.

curl localhost:9200/myindex/mytype/_search -d 
    '{ 
    "aggs" : { 
     "max_id" : { 
     "max" : { 
      "field" : "id" 
     } 
     } 
    }, 
    "size":0 
    }' 

döndürür:

{ 
    "took":7, 
    "timed_out":false, 
    "_shards": { 
    "total":6, 
    "successful":6, 
    "failed":0 
    }, 
    "hits": { 
    "total":22, 
    "max_score":0.0, 
    "hits": [] 
    }, 
    "aggregations": { 
    "max_id": { 
     "value": 27.0 
    } 
    } 
} 

Benim durumumda maksimum id olduğunu.

1
{ 
    "fields": [ 
    "_uid" 
    ], 
    "query": { 
    "match_all": {} 
    }, 
"size": 1, 
"sort": [ { "_uid" : { "order" : "desc"} } ] 
}