成都网站建设设计

将想法与焦点和您一起共享

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根据日期查询数据-创新互联
网站网址:http://chengdu.cdxwcx.cn/article/pgegc.html