-
[Elasticsearch] query, aggregation size 변경Elasticsearch 2020. 8. 11. 20:57
Query, Terms Aggregation 사용 시 모든 bucket이 나오지 않는 문제
원인 :
검색 결과의 default size가 전체 return 개수보다 작아서 발생(default = 10)
해결방법 :
명시적으로 return 크게 size 지정
// term
TermsAggregationBuilder termsAggregation = AggregationBuilders
.terms("count_by_rule_id")
.field("rule_id")
.size(errorRuleController.getErrorRules().size()+50); // error rule 사이즈보다 작으면 집계 과정에서 결과 누락됨
// Query
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("rule_id", ruleId))
.filter(QueryBuilders.rangeQuery("timestamp").gte(startTime).lte(endTime));
searchSourceBuilder.query(boolQueryBuilder).size(10000); // size 크게 지정
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] indexAsync 사용 시 2번째 파라미터 찾을 수 없는 문제 (0) 2020.08.11 [Elasticsearch] Java Rest Client 사용 시 버전 충돌 문제 (0) 2020.08.11 [Elasticsearch] Mapping시 유의사항(dynamic mapping, _all field, text, keyword) (0) 2020.08.11 [Elasticsearch] 색인 속도 향상 방법(asyncIndex, bulk index api, refresh interval) (0) 2020.08.11