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));
参考:文章来源:https://www.toymoban.com/news/detail-501778.html
JAVA代码实现ElasticSearch搜索(入门-进阶)(一):搜索方法、多字段查询、高亮展示_majunssz的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-501778.html
到了这里,关于ES根据日期查询数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!