2015-06-18 8 views
7

Używam elasticsearch do przeszukiwania bazy danych z dużą ilością duplikatów. Używam colaps pola i działa, ale zwraca liczbę trafień (w tym duplikaty), a nie ilość łyżek.pobierz liczbę łyżek w agregatach elasticsearch

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

mogę liczyć wiadra poprzez kolejną prośbę używając liczność (ale to tylko zwraca hrabia, nie dokumenty):

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

Czy istnieje sposób, aby powrócić oba wnioski (wiadra + całkowity wiadro liczyć) w jednym wyszukiwaniu?

Dzięki

Odpowiedz

11

Możesz połączyć obie te agregacje w 1 żądanie.

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

super, dziękuję bardzo – peixotorms

Powiązane problemy