2015-06-18 13 views
7

Çok sayıda kopya içeren bir veritabanında arama yapmak için elasticsearch kullanıyorum. Alan çökmesini kullanıyorum ve çalışıyor, ancak (yinelenen dahil) isabetlerin miktarını değil, miktarını döndürür. Her iki istekleri dönmek için bir yol (kovalar + toplam kova var mıelasticsearch toplamalarında paket sayısı alın

{ 
    "aggs" : { 
     "uniques" : { 
      "cardinality" : { 
       "field" : "guid" 
      } 
     } 
    } 
} 

:

"aggs": { 
     "uniques": { 
      "terms": { 
       "field": "guid" 
      }, 
      "aggs": { 
       "jobs": { "top_hits": { "_source": "title", "size": 1 }} 
      } 
     } 
    } 

ben önem düzeyi kullanarak bir istekte bulunmak kovalar sayabilir (ancak yalnızca sayımı değil, dokümanlar döndürür) Bir aramada saymak?

Teşekkür

cevap

11

Sen 1 istek içine bu toplamalardan hem birleştirebilirsiniz.

{ 
    "aggs" : { 
    "uniques" : { 
     "cardinality" : { 
      "field" : "guid" 
     } 
    }, 
    "uniquesTerms": { 
     "terms": { 
      "field": "guid" 
     }, 
     "aggs": { 
      "jobs": { "top_hits": { "_source": "title", "size": 1 }} 
     } 
    } 
} 
+0

superb, çok teşekkürler – peixotorms