所谓的java查询大体上(当然还是有些差别)就是把kibana里面的语法翻译成java语言;
private String indextName = "book";//定义索引名称
private String typeName = "novel";//定义类型名称
@Test //java中的term查询
public void test9() throws IOException {
//term查询
//1.创建request对象
SearchRequest request = new SearchRequest(indextName);//把索引名给request对象;
request.types(typeName);//类型名给requset.type()方法
//2.执行查询条件
SearchSourceBuilder builder = new SearchSourceBuilder();//构造搜索条件;
//构造term查询
//builder.from(0); //如果有分页的话就加上
//builder.fize(2); //如果有分页的话就加上
builder.query(QueryBuilders.termQuery("author","滔滔"));
request.source(builder);//顺便把builder对象也封装到request对象里;
//因为我们要的是term查询所以就要选termQuery()方法查询;顺便把字段和字段的值传给它;
//3.执行查询
// 执行要连接对象;进行连接,也顺便把requset传过去;
SearchResponse search = ClientUtils.client().search(request,RequestOptions.DEFAULT);
//4.显示查询结果
//search对象就是承载着返回结果的,那么,就来解析它
//他给我们的返回值就是上面的查询结果,所以要从那个查询结果中取值(不信可以打印search)
//两次调用.getHits()因为这里有两个hits,一个是外面的,一个是内核的 ;所以我们要内核的才是原始数据;
SearchHit[] result = search.getHits().getHits();//两次调用之后的原始数据得到一个数组
System.out.print(result);
//遍历这个数组;
for(SearchHit hit : result){ //hits里面的数据更准确应该是_source里面的数据
Map<String,Object> map = hit.getSourceAsMap();//我们把他定义成map集合(map集合
// 方便转成JSON格式),所以是getSourceAsMap()
System.out.println(map);
}
}
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。