====== 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
}
]
}
}
}