Skip to content

Commit d6fb6b4

Browse files
committed
terms aggregation min_doc_count manual merge
1 parent 29a716b commit d6fb6b4

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

src/main/java/org/nlpcn/es4sql/query/AggregationQueryAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public SqlElasticSearchRequestBuilder explain() throws SqlParseException {
5656
Field field = groupBy.get(0);
5757
lastAgg = aggMaker.makeGroupAgg(field);
5858

59-
if (lastAgg != null && lastAgg instanceof TermsBuilder) {
59+
if (lastAgg != null && lastAgg instanceof TermsBuilder && !(field instanceof MethodField )) {
6060
((TermsBuilder) lastAgg).size(select.getRowCount());
6161
}
6262

src/main/java/org/nlpcn/es4sql/query/maker/AggMaker.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,9 @@ private AggregationBuilder<?> termsAgg(MethodField field) throws SqlParseExcepti
234234
case "shard_size":
235235
terms.shardSize(Integer.parseInt(value));
236236
break;
237+
case "min_doc_count":
238+
terms.minDocCount(Integer.parseInt(value));
239+
break;
237240
case "alias":
238241
case "nested":
239242
case "reverse_nested":

src/test/java/org/nlpcn/es4sql/AggregationTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,15 @@ public void multipleGroupBysWithSize() throws Exception {
254254

255255
}
256256

257+
@Test
258+
public void termsWithSize() throws Exception {
259+
Map<String, Set<Integer>> buckets = new HashMap<>();
260+
261+
Aggregations result = query(String.format("SELECT COUNT(*) FROM %s/account GROUP BY terms('alias'='ageAgg','field'='age','size'=3)", TEST_INDEX));
262+
Terms gender = result.get("ageAgg");
263+
Assert.assertEquals(3,gender.getBuckets().size());
264+
265+
}
257266

258267

259268
@Test

0 commit comments

Comments
 (0)