zoukankan      html  css  js  c++  java
  • Es简单条件查询

    一:先看一下es的语句以及查询结果:

     我这边使用的条件是is_device要么是工控要么是资产

    二:java代码部分

      关于es的操作,java里面不需要添加mapper层,只要在service以及controller层里面操作就OK了

      1:在service里面添加接口

    1   //首页的工控资产详情在es里面查询结果
    2     List<Object> getBaseCurrencyByEs();

      2:在实现类里面实现逻辑以及步骤,es查询基本就那7步

     1 @Override
     2     public List<Object> getBaseCurrencyByEs() {
     3         //存放最终数据
     4         ArrayList<Object> list = new ArrayList<>();
     5         //1.创建搜索请求对象
     6         SearchRequest searchRequest = new SearchRequest("mid_assets_shanxi").types("mid_assets_shanxi");
     7         //2.设置搜索源配置
     8         SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
     9         //3.构建QueryBuilder对象指定查询方式和查询条件
    10         QueryBuilder queryBuilder = QueryBuilders.termQuery("is_device.keyword", "通用设备");
    11         //4,将QuseryBuilder对象设置到SearchSourceBuilder对象中
    12         searchSourceBuilder.query(queryBuilder);
    13         //5,将SearchSourceBuilder设置到SearchRequest中
    14         searchRequest.source(searchSourceBuilder);
    15         try {
    16             //6,调用方法查询数据
    17             SearchResponse searchResponse = restHighLevelClient.search(searchRequest);
    18             System.err.println("es语句:" + searchRequest);
    19             //7,解析返回结果
    20             SearchHits hits = searchResponse.getHits();
    21             //得到数据
    22             SearchHit[] searchHits = hits.getHits();
    23             for (SearchHit hit : searchHits){
    24                 Map<String, Object> result = hit.getSourceAsMap();
    25                 list.add(result);
    26             }
    27         } catch (IOException e) {
    28             e.printStackTrace();
    29         }
    30         return list;
    31     }

      3:在controller层里面调用接口

    1 @GetMapping("getBaseCurrencyByEs")
    2 @ApiOperation("通用资产详情的数据")
    3     public Result getBaseCurrencyByEs(){
    4         List<Object> baseIndustrial=bigscreenStatisticsAllService.getBaseCurrencyByEs();
    5         return Result.ok(baseIndustrial);
    6     }

    三:测试接口是否查询到了数据:

  • 相关阅读:
    CSS实现点击改变元素背景色
    php三种方法从控制结构或脚本中跳出
    如何关闭运行在某端口的的进程,例如 :8080端口
    Webpack简易入门教程
    git add -A 和 git add . 的区别
    怎样把已经做好的网页传到网上去?
    jquery源码之事件系统-- jQuery.event
    jquery源码之缓存系统--$.data
    jquery源码之延迟对象--Deferred
    jquery源码之低调的回调函数队列--Callbacks
  • 原文地址:https://www.cnblogs.com/dabu/p/14744131.html
Copyright © 2011-2022 走看看