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));
参考:
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgaahke
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24