2015-11-27 1 views
0

Je dois générer une requête qui renvoie une valeur booléenne que Java pourrait lire. Quand j'essaie ceci:API Elasticsearch Java: Renvoie une valeur booléenne

QueryBuilder qb = matchQuery(
    "user.name",     
    "user123" 
); 
SearchResponse response = client.prepareSearch("logstash-*").addFields("user.name") 
.setTypes("names").setQuery(qb) 
.execute() 
.actionGet(); 

Il retourne tous les résultats pour user123. Si user123 n'existe pas, il renvoie les éléments suivants:

{ 
    "took" : 69, 
"timed_out" : false, 
"_shards" : { 
    "total" : 75, 
    "successful" : 75, 
    "failed" : 0 
}, 
"hits" : { 
    "total" : 0, 
    "max_score" : null, 
    "hits" : [ ] 
} 
    } 

Ce que je dois, cependant, est une valeur vraie ou fausse. Si l'utilisateur existe, alors vrai, sinon, alors faux. Comment puis-je accomplir cela?

Merci.

Répondre

1

Que diriez-vous de Count API et vérifiez si le résultat est 0 ou non?

QueryBuilder qb = matchQuery(
"user.name",     
"user123" 
); 
SearchResponse response = client.prepareCount("logstash-*").addFields("user.name") 
         .setTypes("names").setQuery(qb) 
         .execute() 
         .actionGet(); 
return response.count() != 0 // return true if found 
+0

..... oh .. n'ont pas pensé à ça .. Merci! –