基于JAVA调用ES API实现查询主要分两步,一是查询操作,二是查询结果解析。
一、查询操作
可以通过ES API提供的QueryBuilders类操作查询方式,常用的方法有termQuery、queryStringQuery、idsQuery,用哪个方法在setQuery中设置相应的参数即可,本文以termQuery举例。
SearchResponse searchResponse = client.prepareSearch("est2")
.setTypes("demoMapping")
.setQuery(QueryBuilders.termQuery("content", "测试")).get();
二、查询结果解析
SearchHits hits = searchResponse.getHits(); // 获取命中次数,查询结果有多少对象
System.out.println("查询结果有:" + hits.getTotalHits() + "条");
Iterator<SearchHit> iterator = hits.iterator();
while (iterator.hasNext()) {
SearchHit searchHit = iterator.next(); // 每个查询对象
System.out.println("title:" + searchHit.getSource().get("title"));
System.out.println("content:" + searchHit.getSource().get("content"));
}
实践查询结果如图: