Récupérer valeur d'un champs avec l'API Java


(Bembouille) #1

Bonjour,

Je travaille depuis peu avec ELK avec, notamment, l'API Java.

Je travaille sur des logs formatés grâce à logstash comme ceci :

        {"message":"[31-10-2018 09:12:31][INFO]fonction[][][]blabla","host":"host","log_date":"31-10-2018","@version":"1","log_time":"09:12:31","level":"INFO","path":"chemindulog","@timestamp":"2019-01-02T14:07:57.864Z","message_log":"blabla","fonction":"fonction[][]"}

        {"message":"[31-10-2018 09:12:32][INFO]fonction[][][]blabla2","host":"host","log_date":"31-10-2018","@version":"1","log_time":"09:12:32","level":"INFO","path":"chemindulog","@timestamp":"2019-01-02T14:07:57.864Z","message_log":"blabla2","fonction":"fonction[][]"}

...

Ce que j'aimerai c'est pouvoir récupérer les infos, avec l'API pour pouvoir travailler avec.

Comme par exemple récupérer la valeur du champs "fonction",... .

Je lis les éléments de l'index en utilisant:

        SearchResponse searchResponse = c.prepareSearch(index).get();

        SearchHit[] j = searchResponse.getHits().getHits();

J'ai essayé plusieurs choses dont ceci :

  GetResponse response = c.prepareGet(index,type,id).get();

        String fonction = res.getField("fonction").getValue();

System.out.println(fonction)

Si quelqu'un a des idées je suis preneur ! :slight_smile:


(David Pilato) #2

Tu ne peux pas directement récupérer un champ si tu ne l'as pas stocké dans le mapping (store: true).

Tu peux accéder au champ _source puis lire la hashmap.


(system) closed #3

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