J'ai un index de base avec les journauxElasticSearch - Count distinct
Certains journaux sont visite de user1 à USER2
J'ai réussi à compter le total des visites a reçu un utilisateur, mais je ne sais pas comment compter le total d'utilisateurs distincts un utilisateur a reçu
Cela me donne tous les journaux pour un utilisateur
{
"post_filter":{
"bool":{
"must":[
{
"term":{
"message":"visit"
}
},
{
"term":{
"ctxt_user2":"733264"
}
}
]
}
},
"query":{
"match_all":{}
}
}
en fait, j'utilise FoSElastica Bundle pour Symfony2
$filter->addMust((new Term())->setTerm('message', 'visit'));
$filter->addMust((new Term())->setTerm('ctxt_user2', $this->search->getVisit()));
Je lis quelques pages dans le document ES avec aggrégateur, mais je ne réussi à obtenir ce que je veux
Convertir en SQL, j'ai juste besoin
SELECT COUNT(DISCTING ctxt_user1)
FROM logs
WHERE ctxt_user2 = 733264
EDIT :
La cardinalité est ce dont j'ai besoin. Maintenant juste besoin de trouver comment l'utiliser avec FosElasticaBundle
"aggs": {
"yourdistinctcount": {
"cardinality": {
"field": "ctxt_user1"
}
}
}
Malheureusement, je reçois toujours les 3 lignes qui contient "733264" dans ctxt_user2 :( – Bouffe
le résultat se trouve sur le résultat non sur les résultats Si vous voulez désactiver le résultat de recherche ajouter "taille": 0 avant "requête" – NicolasY
Oh, je ne le savais pas! Mais "agrégations": { "yourdistinctcount": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "godets" : [{ "clé": 18475, "doc_count": 3} ] }} – Bouffe