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:http://vcdvsql.cn/article12/pgegc.html
成都網站建設公司_創新互聯,為您提供網站內鏈、網站設計、定制網站、小程序開發、做網站、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯