# Aggrégaration: avoir un champ suplémentaire!

**URL:** <https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625>\
**Category:** Discussions en français\
**Created:** [May 4, 2018, 12:11pm UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625 "2018-05-04T12:11:25Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 4, 2018, 12:11pm UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/1 "2018-05-04T12:11:25Z")

</div>

Bonjour,  
je veux faire une requête d'aggrégation et avoir un champs suplémentaire dans le résultat, je donne un exemple pour que ce soit un peu plus claire.  
en gros j'ai des données dans ES comme ça :

```auto
[
{
  "id_object": "object:1",
  "count": 3,
  "action": {
    "id": "action:1",
    "name": "Faire acetion 1"
  }
}
....
]

```

la requête que je fais:

```auto
{
  "aggs": {
    "specific_element": {
      "aggs": {
        "bucket": {
          "aggs": {
            "result": {
              "sum": {
                "field": "count"
              }
            }
          },
          "terms": {
            "order": {
              "result": "desc"
            },
            "field": "action.id"
          }
        }
      },
      "filter": {
        "term": {
          "id_job": "object:1"
        }
      }
    }
  }
}

```

le résultat de cette recherche:

```auto
{
  "hits": {
    "hits": [
      {
        "_index": "index_name",
        "_id": "KiK9KmMBWhk4qB402bF3",
        "_score": 1,
        "_source": {
          "count": 1,
          "id_object": "object:1",
          "action": {
            "id": "action:1",
            "name": "Faire acetion 1"
          }
        }
      },
      {
        "_index": "index_name",
        "_id": "KyK9KmMBWhk4qB402bF3",
        "_score": 1,
        "_source": {
          "count": 5,
          "id_object": "object:2",
          "action": {
            "id": "action:2",
            "name": "Faire acetion 2"
          }
        }
      }
    ]
  },
  "aggregations": {
    "specific_element": {
      "doc_count": 15,
      "bucket": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 5,
        "buckets": [
          {
            "key": "action:100",
            "doc_count": 1,
            "result": {
              "value": 28
            }
          },
          {
            "key": "action:102",
            "doc_count": 1,
            "result": {
              "value": 4
            }
          },
          {
            "key": "action:105",
            "doc_count": 1,
            "result": {
              "value": 35
            }
          }
        ]
      },
      "total_count": {
        "value": 182
      }
    }
  }
}

```

ce que je veux avoir en plus dans ce résultat, je ne sais pas si possible, d'avoir les noms des actions: action:100, action:102 et action:105

Merci pour les réponses par avance.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 5, 2018, 9:58am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/2 "2018-05-05T09:58:03Z")

</div>

Tu peux sans doute faire une sous aggregation de type terms sur le champ `action.name.keyword` (si tu indexes dans un sous champ `.keyword` ton texte d'origine).

---

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 7, 2018, 9:55am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/3 "2018-05-07T09:55:42Z")

</div>

Bonjour David,  
merci pour votre réponse.  
pas d'autre moyen, je ne veux pas faire une agrégation sur le nom.  
je veux juste avoir l'objet "action" en réponse.  
peut-être que je n'ai pas le choix 🙂  
merci

---

<div class="post-metadata">

**Author:** ![gabriel\_tessier](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/gabriel_tessier/32/27911_2.png) [@gabriel\_tessier](https://discuss.elastic.co/u/gabriel_tessier)\
**Post date:** [May 8, 2018, 12:55am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/4 "2018-05-08T00:55:11Z")

</div>

Bonjour,

Juste en passant surveille ta memoire (heap) avec les données sur ton serveur de prod j'ai déja planté un serveur en faisant des sous-sous aggregations... une autre solution si tu veux recuperer plus de champs et ne pas faire 15 sous sous aggregations c'est d'en faire une, puis recuperer ton id et refaire une requete pour recuperer tous les champs dont t'as besoin.  
Je ne sais pas si c'est clair, mais en gros faire 2 requetes rapides valent mieux qu'en faire une grosse lente.

---

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 8, 2018, 12:16pm UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/5 "2018-05-08T12:16:40Z")

</div>

Bonjour,  
merci pour les réponses, j'ai fais autrement, voici la nouvelle requête:

```auto
{
  "query": {
    "match": {
      "id_job": "object:1"
    }
  },
  "aggs": {
    "result": {
      "terms": {
        "field": "action.id"
      },
      "aggs": {
        "count": {
          "sum": {
            "field": "count"
          }
        }
      }
    }
  }
}

```

ça l'air de bien fonctionner

---

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 9, 2018, 10:46am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/6 "2018-05-09T10:46:48Z")

</div>

ne marche pas non plus ☹

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 9, 2018, 12:07pm UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/7 "2018-05-09T12:07:36Z")

</div>

Tu peux expliquer la différence entre:

> ça l'air de bien fonctionner

Et

> ne marche pas non plus ☹

---

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 9, 2018, 12:21pm UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/8 "2018-05-09T12:21:24Z")

</div>

non mais ça ne fonctionne pas puisque j'avais le test avec peu de données "action", moins de 10 éléments.

Dès que je dépase 10 actions ça ne fonctionne plus puisque es ne retourne que les 10 prmiers, dans la prtie aggrégation on peut avoir une action qui n'est pas dans hits

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 16, 2018, 8:59am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/9 "2018-05-16T08:59:16Z")

</div>

> Dès que je dépase 10 actions ça ne fonctionne plus puisque es ne retourne que les 10 prmiers, dans la prtie aggrégation on peut avoir une action qui n'est pas dans hits

Et ? Du coup quel est le problème avec ça ?  
Je veux dire que quand je calcule des aggrégations, je mets souvent `size: 0`.

---

<div class="post-metadata">

**Author:** ![RSTMAN](https://avatars.discourse-cdn.com/v4/letter/r/bb73d2/32.png) [@RSTMAN](https://discuss.elastic.co/u/RSTMAN)\
**Post date:** [May 17, 2018, 11:24am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/10 "2018-05-17T11:24:45Z")

</div>

Bonjour,

le problème n'est pas dans la partie aggrégation mais dans la partie hits, je n'ai pas toutes les actions dans hits qui sont aggrégés.  
peut-être que je m'explique mal !

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 17, 2018, 11:43am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/11 "2018-05-17T11:43:55Z")

</div>

En tout cas je ne comprends pas.

L'idéal serait d'écrire un exemple simple et concret qu'on puisse copier coller dans Kibana et rejouer.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 14, 2018, 11:44am UTC](https://discuss.elastic.co/t/aggregaration-avoir-un-champ-suplementaire/130625/12 "2018-06-14T11:44:00Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
