ES根据日期查询数据-创新互联

1 实体类写入ES

为桂东等地区用户提供了全套网页设计制作服务,及桂东网站建设行业解决方案。主营业务为成都做网站、网站建设、桂东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

在写入ES库的时候,日期格式需要转换成ES可以识别的日期格式:

yyyy/MM/dd HH:mm:ss

然后写入ES库即可

一般是根据时间区间查询,所以如果有空字段可以设置一个默认值方便查询

//如果结束时间为空 手动设置成2099年12月31号为结束时间
  if(ObjectUtil.isEmpty(esMedList.getEnddate())){
      esMedList.setEnddate(DateUtil.parseDate("2099-12-31"));
    }
  IndexRequest request = new IndexRequest(indexName);
  request.id(esMedList.getMedListCodg());
  request.type("_doc");
  request.source(JSONObject.toJSONString(esMedList), XContentType.JSON);
  request.opType(DocWriteRequest.OpType.CREATE);
  bulkProcessor.add(request);

2 查询ES数据的时候

BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
        queryBuilder.filter(QueryBuilders.rangeQuery("begndate")
                .to(DateUtil.format(feeOccuTime,dateFormat)));
        queryBuilder.filter(QueryBuilders.rangeQuery("enddate").from(DateUtil.format(feeOccuTime,dateFormat)));
        queryBuilder.must(QueryBuilders.matchQuery("drugProdname", drugProdname));

        if(chrgitmLv!=null){
            queryBuilder.filter(QueryBuilders.termQuery("chrgitmLv", chrgitmLv));
        }

        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(queryBuilder);

ES的一些搜索规则:

//4设置搜索规则   
//4.1QueryBuilders.matchAllQuery() 查询全部数据
searchSourceBuilder .query(QueryBuilders.matchAllQuery());
//4.2 QueryBuilders.termQuery :对搜索关键字不分词进行查询 精准查询
searchSourceBuilder.query(QueryBuilders.termQuery("name","张三"));
//4.2.1 termsQuery: 精准查询,一次匹配多个数据
searchSourceBuilder.query(QueryBuilders.termsQuery("id","25","24"));
//4.3 QueryBuilders.matchQuery(). 关键字分词进行查询
searchSourceBuilder.query(QueryBuilders.matchQuery("courseName","分布式课程入门").operator(Operator.AND));
//4.3.1 QueryBuilders.multiMatchQuery() 关键字匹配多个字段,可以给某一个字段设置 权重,提升的倍数。
searchSourceBuilder.query(QueryBuilders.multiMatchQuery("分布式OK", "courseName", "courseDescription").field("courseName", 10));
//4.4 时间范围搜索 .from(起始时间).to(结束时间)
searchSourceBuilder.query(QueryBuilders.must(QueryBuilders.rangeQuery("commentTime").from("2022-01-02 13:11:00").to("2022-01-02 14:11:00")));
//4.5 QueryBuilders.rangeQuery 范围查询 gte 大于等于 lte 小于等于
searchSourceBuilder.query(QueryBuilders.rangeQuery("pay").gte(1000).lte(2000));

参考:

JAVA代码实现ElasticSearch搜索(入门-进阶)(一):搜索方法、多字段查询、高亮展示_majunssz的博客-博客

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

标题名称:ES根据日期查询数据-创新互联
文章URL:https://www.cdcxhl.com/article12/pgegc.html

成都网站建设公司_创新互联,为您提供网站内链网站设计定制网站小程序开发做网站网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司