21.如何使用java实现term查询? 嘻哈的简写笔记——Elastic Search

所谓的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);
    }
}

。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值