Effectuer des recherches dans la base de données - Ahp06/Monitoring GitHub Wiki
La classe utilisée pour effectuer des recherches est SearchResponse, il faut toujours spécifier l’index dans lequel nous voulons effectuer la recherche ainsi que le type de l’index. La requête peut être complexe, vous pouvez limiter le nombre de résultats et ordonner les résultats. Ici je trie par date de manière descendante, et ne récupère qu’un élément.
SearchResponse response = client.prepareSearch("update").setTypes("MachineUpdate")
.setQuery(QueryBuilders.matchAllQuery())
.setSize(1)
.addSort("time", SortOrder.DESC).get();
SearchHits hits = response.getHits();
Chaque résultat de la requête est un Hit, que l’on peut traiter, ici par exemple nous récupérons la valeur du champ « Time » d’un Hit.
hits.getAt(0).getSourceAsMap().get("time").toString();
Une proposition d’une manière pour compter le nombre de documents :
SearchResponse response = client.prepareSearch("update").setTypes("MachineUpdate")
.setQuery(QueryBuilders.matchAllQuery()).setSize(0).get();
SearchHits hits = response.getHits();
long hitsCount = hits.getTotalHits();