Intro ElasticSearch RangeQuery And TermsQuery
這篇介紹ElasticSearch RangeQuery And TermsQuery。
查時間區間 example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| KQL: { "bool": { "filter": [ { "range": { "dailydate": { "from": "2021-08-01 00:00:00", "to": "2021-08-01 23:59:59", "include_lower": true, "include_upper": true, "format": "yyyy-MM-dd HH:mm:ss" } } } ] } } --- RestHighLevelApi: SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); queryBuilder.filter(QueryBuilders.rangeQuery("dailydate") .format(FormatUtils.DATE_PATTERN_DASH_YYYY_MM_DD_BALNK_HH_MM_SS).from(startTime, true).to(endTime, true)); sourceBuilder.query(queryBuilder);
|
查單一欄位 example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| KQL: { "bool": { "must": { "term": { "userId": "Mike" } } } } --- RestHighLevelApi: SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); queryBuilder.must(QueryBuilders.termQuery("userId", "Mike")); sourceBuilder.query(queryBuilder);
|
查多個欄位(OR) example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| KQL: { "bool": { "should": [ { "term": { "status": 1 } }, { "term": { "status": 0 } } ] } } --- RestHighLevelApi: SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); queryBuilder.should(QueryBuilders.termQuery("status", 1)); queryBuilder.should(QueryBuilders.termQuery("status", 0)); sourceBuilder.query(queryBuilder);
|
查單個欄位(>= and <=) example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| KQL: { "bool": { "range": { "score": { "gte": 10, "lte": 20 } } } } RestHighLevelApi: SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); queryBuilder.filter(QueryBuilders.rangeQuery("score").gte(10)); queryBuilder.filter(QueryBuilders.rangeQuery("score").lte(20)); sourceBuilder.query(queryBuilder);
|