# Python & elasticsearch

**URL:** <https://discuss.elastic.co/t/python-elasticsearch/172785>\
**Category:** Discussions en français\
**Created:** [March 18, 2019, 1:48pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785 "2019-03-18T13:48:27Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Digital](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/digital/32/41054_2.png) [@Digital](https://discuss.elastic.co/u/Digital)\
**Post date:** [March 18, 2019, 1:48pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/1 "2019-03-18T13:48:28Z")

</div>

Bonjour à tous 🙂

J'utilise maintenant elasticsearch depuis plusieurs mois maintenant et j'aimerais m'orienter dans la partie API de celui-ci.  
Je suis entrain de préparer un développement qui devra aller rechercher les informations présentes dans la base de donnée elasticsearch.  
Cependant je reste un peu bloqué avec la documentation et autres sujets présent sur ce forum.

Actuellement dans mon Kibana j'ai créé un tableau qui liste des IP et leurs counts j'aimerais récupérer ces informations en python mais je reste perdu avec l'API 😕

J'ai réussis a récupérer des informations sur ces IP mais pas comme présenté dans Kibana.

Auriez-vous des liens qui pourront m'aider ? ou des exemples de query similaire ?

Merci d'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:** [March 18, 2019, 2:17pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/2 "2019-03-18T14:17:32Z")

</div>

Je ne connais pas l'API Python mais peux-tu commencer par partager une requête typique Kibana que tu aimerais convertir en Python ?

---

<div class="post-metadata">

**Author:** ![Digital](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/digital/32/41054_2.png) [@Digital](https://discuss.elastic.co/u/Digital)\
**Post date:** [March 18, 2019, 2:28pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/3 "2019-03-18T14:28:08Z")

</div>

Bonjour Dadoonet,

Merci pour ton retour j'ai simplement créer un tableau dans un dashboard:  
Mais j'aurai besoin de cette même liste et aussi des counts.  
désoler d'avoir masqué les IPs mais je ne peux pas les partagées.

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/2/9/29f124f206f59531fa6b61d456424003b3f0956d.png)

---

<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:** [March 18, 2019, 2:59pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/4 "2019-03-18T14:59:35Z")

</div>

Je ne parle pas d'une vue graphique mais d'une requête type dans Kibana genre:

```auto
GET index/_search
{
  "query": {
   // ...
  },
  "aggs": {
    // ...
  }
}

```

---

<div class="post-metadata">

**Author:** ![Digital](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/digital/32/41054_2.png) [@Digital](https://discuss.elastic.co/u/Digital)\
**Post date:** [March 18, 2019, 3:01pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/5 "2019-03-18T15:01:37Z")

</div>

Je n'ai pas encore fait de query de ce genre ne sachant pac comment cela fonctionne 😕

---

<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:** [March 18, 2019, 3:13pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/6 "2019-03-18T15:13:03Z")

</div>

Il y a une possibilité dans Kibana d'afficher la requête qui a été faite.  
De mémoire une flèche descendante ou montante sous une visualisation.

---

<div class="post-metadata">

**Author:** ![Digital](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/digital/32/41054_2.png) [@Digital](https://discuss.elastic.co/u/Digital)\
**Post date:** [March 18, 2019, 3:40pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/7 "2019-03-18T15:40:54Z")

</div>

oui effectivement la voici:

```
{
  "aggs": {
"2": {
  "significant_terms": {
    "field": "origin.keyword",
    "size": 300
  }
}
  },
  "size": 0,
  "_source": {
"excludes": []
  },
  "stored_fields": [
"*"
  ],
  "script_fields": {},
  "docvalue_fields": [
{
  "field": "@timestamp",
  "format": "date_time"
},
{
  "field": "ts",
  "format": "date_time"
}
  ],
  "query": {
"bool": {
  "must": [
    {
      "match_all": {}
    },
    {
      "match_all": {}
    },
    {
      "range": {
        "@timestamp": {
          "gte": 1552922613804,
          "lte": 1552923513804,
          "format": "epoch_millis"
        }
      }
    }
  ],
  "filter": [],
  "should": [],
  "must_not": []
}
  }
}
```

---

<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:** [March 18, 2019, 5:08pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/8 "2019-03-18T17:08:23Z")

</div>

Simplifions un peu cela:

```auto
{
  "size": 0,
  "query": {
      "range": {
        "@timestamp": {
          "gte": 1552922613804,
          "lte": 1552923513804,
          "format": "epoch_millis"
        }
      }
    }
  },
  "aggs": {
    "2": {
      "significant_terms": {
        "field": "origin.keyword",
        "size": 300
      }
    }
  }
}

```

Donc, il te faut utiliser `_search`: [https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.search](https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.search)

Apparement tu peux lui passer un `body` qui contient ce qu'on vient de définir juste au-dessus.

Je ne m'y connais pas assez en Python mais ça devrait t'aider pour te mettre sur la voie. Regarde ce que tu récupères ensuite comme information. Ca devrait te donner le résultat de l'aggrégation que tu peux afficher comme tu veux ensuite.

---

<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:** [March 19, 2019, 5:59am UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/9 "2019-03-19T05:59:40Z")

</div>

Bonjour,

Y'a aussi une lib plus haut niveau et plus simple, si t'es pas a l'aise avec les requetes en Json de Kibana.

[https://elasticsearch-dsl.readthedocs.io/en/latest/search\_dsl.html#queries](https://elasticsearch-dsl.readthedocs.io/en/latest/search_dsl.html#queries)  
⚠ Y'a une note pour ton cas avec le champ @timestamp

Bon courage!

---

<div class="post-metadata">

**Author:** ![Digital](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/digital/32/41054_2.png) [@Digital](https://discuss.elastic.co/u/Digital)\
**Post date:** [March 20, 2019, 1:53pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/10 "2019-03-20T13:53:29Z")

</div>

Ok Super un grand merci pour votre retour je vais essayer de jouer avec ça et voir ce que je peux faire 😃  
J'espère revenir avec un update pour fournir quelques exemples!

Bonne journée 😉

---

<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:** [April 17, 2019, 1:53pm UTC](https://discuss.elastic.co/t/python-elasticsearch/172785/11 "2019-04-17T13:53:35Z")

</div>

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