aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
index 6b21b2c6b5c..0c163aaacae 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingRequest.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.search.grouping;
+import com.yahoo.api.annotations.Beta;
import com.yahoo.net.URI;
import com.yahoo.search.Query;
import com.yahoo.search.Result;
@@ -13,6 +14,7 @@ import com.yahoo.search.result.Hit;
import java.util.ArrayList;
import java.util.List;
+import java.util.OptionalInt;
import java.util.TimeZone;
/**
@@ -30,6 +32,8 @@ public class GroupingRequest {
private final List<Continuation> continuations = new ArrayList<>();
private GroupingOperation root;
private TimeZone timeZone;
+ private int defaultMaxHits = -1;
+ private int defaultMaxGroups = -1;
private GroupingRequest(Select parent) {
this.parent = parent;
@@ -38,16 +42,20 @@ public class GroupingRequest {
private GroupingRequest(Select parent,
List<Continuation> continuations,
GroupingOperation root,
- TimeZone timeZone) {
+ TimeZone timeZone,
+ int defaultMaxHits,
+ int defaultMaxGroups) {
this.parent = parent;
continuations.forEach(item -> this.continuations.add(item.copy()));
this.root = root != null ? root.copy(null) : null;
this.timeZone = timeZone;
+ this.defaultMaxHits = defaultMaxHits;
+ this.defaultMaxGroups = defaultMaxGroups;
}
/** Returns a deep copy of this */
public GroupingRequest copy(Select parentOfCopy) {
- return new GroupingRequest(parentOfCopy, continuations, root, timeZone);
+ return new GroupingRequest(parentOfCopy, continuations, root, timeZone, defaultMaxHits, defaultMaxGroups);
}
/**
@@ -131,6 +139,20 @@ public class GroupingRequest {
return continuations;
}
+ @Beta
+ public OptionalInt defaultMaxHits() {
+ return defaultMaxHits >= 0 ? OptionalInt.of(defaultMaxHits) : OptionalInt.empty();
+ }
+
+ @Beta public void setDefaultMaxHits(int v) { this.defaultMaxHits = v; }
+
+ @Beta
+ public OptionalInt defaultMaxGroups() {
+ return defaultMaxGroups >= 0 ? OptionalInt.of(defaultMaxGroups) : OptionalInt.empty();
+ }
+
+ @Beta public void setDefaultMaxGroups(int v) { this.defaultMaxGroups = v; }
+
/**
* Creates a new grouping request and adds it to the query.getSelect().getGrouping() list
*