====== Distinct ====== source: [[https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html]] ===== Commande ===== On veux récupérer sous le nom de ''uniqDID'' les différents ''kSID'' contenus dans ''test/measures/'' ''"size": 0'' est la pour limiter le nombre de document retournés a 0, car ce n'est pas les documents qui nous importent ici. kSID**.keyword** est présent pour transformé le type text et keyword, car apparemment cela ne fonctionne que sur les keywords. GET test/measures/_search { "size": 0, "aggs" : { "uniqDID" : { "terms" : { "field" : "kSID.keyword" } } } } ===== En PHP ===== $params = [ "index" => "test", "type" => "measures", 'body' => [ "size" => 0, "aggs" => [ "uniqDID" => [ "terms" => [ "field" => "kSID.keyword" ] ] ] ] ]; $client = ClientBuilder::create()->build(); $result = $client->search($params); ===== Resultat ===== { "took": 35, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 491426, "max_score": 0, "hits": [] }, "aggregations": { "uniqDID": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "PILL", "doc_count": 486154 }, { "key": "%YOURSID%", "doc_count": 3784 }, { "key": "toto", "doc_count": 73 } ] } } }