diff options
Diffstat (limited to 'container-search/src')
5 files changed, 40 insertions, 10 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/querytransform/NoRankingSearcher.java b/container-search/src/main/java/com/yahoo/prelude/querytransform/NoRankingSearcher.java index 7456f33d00f..30074f0306d 100644 --- a/container-search/src/main/java/com/yahoo/prelude/querytransform/NoRankingSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/querytransform/NoRankingSearcher.java @@ -12,8 +12,7 @@ import com.yahoo.search.query.Sorting.FieldOrder; import com.yahoo.search.searchchain.Execution; /** - * Avoid doing relevance calculations if sorting only - * on attributes. + * Avoid doing relevance calculations if sorting only on attributes. * * @author Steinar Knutsen */ diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java index 40fbda5a98a..5a39612b200 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java @@ -1,12 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** - * This class represents a min-function in a {@link GroupingExpression}. It evaluates to a number that equals the + * A min-function in a {@link GroupingExpression}. It evaluates to a number that equals the * smallest of the results of all arguments. * * @author Simon Thoresen Hult @@ -16,9 +15,9 @@ public class MinFunction extends FunctionNode { /** * Constructs a new instance of this class. * - * @param arg1 The first compulsory argument, must evaluate to a number. - * @param arg2 The second compulsory argument, must evaluate to a number. - * @param argN The optional arguments, must evaluate to a number. + * @param arg1 the first compulsory argument, must evaluate to a number + * @param arg2 the second compulsory argument, must evaluate to a number + * @param argN the optional arguments, must evaluate to a number */ public MinFunction(GroupingExpression arg1, GroupingExpression arg2, GroupingExpression... argN) { this(null, null, asList(arg1, arg2, argN)); diff --git a/container-search/src/main/java/com/yahoo/search/query/Select.java b/container-search/src/main/java/com/yahoo/search/query/Select.java index 65ffd29efe0..53628978db3 100644 --- a/container-search/src/main/java/com/yahoo/search/query/Select.java +++ b/container-search/src/main/java/com/yahoo/search/query/Select.java @@ -132,7 +132,7 @@ public class Select implements Cloneable { @Override public String toString() { - return "where: [" + where + "], grouping: [" + grouping+ "]"; + return "where: [" + where + "], grouping: [" + grouping + "]"; } @Override diff --git a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java index 244d45f1b29..fb08b39de4d 100644 --- a/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java @@ -124,10 +124,10 @@ public class GroupingRequestTestCase { assertEquals(Collections.emptyList(), query.getSelect().getGrouping()); GroupingRequest foo = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo), query.getSelect().getGrouping()); + assertEquals(List.of(foo), query.getSelect().getGrouping()); GroupingRequest bar = GroupingRequest.newInstance(query); - assertEquals(Arrays.asList(foo, bar), query.getSelect().getGrouping()); + assertEquals(List.of(foo, bar), query.getSelect().getGrouping()); } diff --git a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java index 9bcd3addd92..1ce70feebb4 100644 --- a/container-search/src/test/java/com/yahoo/select/SelectTestCase.java +++ b/container-search/src/test/java/com/yahoo/select/SelectTestCase.java @@ -20,6 +20,12 @@ import com.yahoo.prelude.query.WordItem; import com.yahoo.processing.IllegalInputException; import com.yahoo.search.Query; import com.yahoo.search.grouping.GroupingRequest; +import com.yahoo.search.grouping.request.AllOperation; +import com.yahoo.search.grouping.request.AttributeValue; +import com.yahoo.search.grouping.request.CountAggregator; +import com.yahoo.search.grouping.request.EachOperation; +import com.yahoo.search.grouping.request.MaxAggregator; +import com.yahoo.search.grouping.request.MinAggregator; import com.yahoo.search.query.QueryTree; import com.yahoo.search.query.Select; import com.yahoo.search.query.SelectParser; @@ -768,6 +774,32 @@ public class SelectTestCase { assertEquals(clone.getSelect().getGroupingExpressionString(), query.getSelect().getGroupingExpressionString()); } + @Test + public void testProgrammaticBuilding() { + String expected = + "all(group(myfield) max(10000) each(" + + "output(min(foo), max(bar)) " + + "all(group(foo) max(10000) output(count()))" + + "))"; + Query query = new Query(); + GroupingRequest grouping = GroupingRequest.newInstance(query); + AllOperation root = new AllOperation(); + root.setGroupBy(new AttributeValue("myfield")); + root.setMax(10000); + EachOperation each = new EachOperation(); + each.addOutput(new MinAggregator(new AttributeValue("foo"))); + each.addOutput(new MaxAggregator(new AttributeValue("bar"))); + AllOperation all = new AllOperation(); + all.setGroupBy(new AttributeValue("foo")); + all.setMax(10000); + all.addOutput(new CountAggregator()); + each.addChild(all); + root.addChild(each); + grouping.setRootOperation(root); + + assertEquals(expected, query.getSelect().getGrouping().get(0).toString()); + } + //------------------------------------------------------------------- Assert methods private void assertParse(String where, String expectedQueryTree) { |