Elasticsearch Java API: Return 一个布尔值

Elasticsearch Java API: Return a boolean value

我需要构建一个查询,returns 一个 Java 可以读取的布尔值。当我尝试这个时:

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

它 returns user123 的所有点击。如果 user123 不存在,它 returns 如下:

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

然而,我需要的是真值或假值。如果用户存在,则为 true,如果不存在,则为 false。我怎样才能做到这一点?

谢谢。

如何Count API并检查结果是否为0?

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