summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/querytransform/NoRankingSearcher.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/MinFunction.java9
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/Select.java2
-rw-r--r--container-search/src/test/java/com/yahoo/search/grouping/GroupingRequestTestCase.java4
-rw-r--r--container-search/src/test/java/com/yahoo/select/SelectTestCase.java32
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) {