diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-08 23:01:46 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-01-08 23:01:46 +0100 |
commit | c49a1256ef4c431f7a59018e4d62d1942fdeaf1e (patch) | |
tree | 883f7411e58ffbbb09238fd95d7bf76e6076bf92 /container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java | |
parent | 93057cb2141dee8846c9304eb6a9aae2ba9c4dc0 (diff) |
Support max-hits-per-node in Dispatcher
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java index 224facd0c5b..03b51fbaf70 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/Dispatcher.java @@ -66,6 +66,8 @@ public class Dispatcher extends AbstractComponent { private final Metric metric; private final Metric.Context metricContext; + private final int maxHitsPerNode; + private static final QueryProfileType argumentType; static { @@ -120,6 +122,7 @@ public class Dispatcher extends AbstractComponent { this.invokerFactory = invokerFactory; this.metric = metric; this.metricContext = metric.createContext(null); + this.maxHitsPerNode = dispatchConfig.maxHitsPerNode(); searchCluster.startClusterMonitoring(pingFactory); } @@ -161,7 +164,11 @@ public class Dispatcher extends AbstractComponent { if (nodes.isEmpty()) return Optional.empty(); query.trace(false, 2, "Dispatching with search path ", searchPath); - return invokerFactory.createSearchInvoker(searcher, query, OptionalInt.empty(), nodes, true); + return invokerFactory.createSearchInvoker(searcher, query, + OptionalInt.empty(), + nodes, + true, + maxHitsPerNode); } catch (InvalidSearchPathException e) { return Optional.of(new SearchErrorInvoker(ErrorMessage.createIllegalQuery(e.getMessage()))); } @@ -172,7 +179,12 @@ public class Dispatcher extends AbstractComponent { if (directNode.isPresent()) { Node node = directNode.get(); query.trace(false, 2, "Dispatching to ", node); - return invokerFactory.createSearchInvoker(searcher, query, OptionalInt.empty(), Arrays.asList(node), true) + return invokerFactory.createSearchInvoker(searcher, + query, + OptionalInt.empty(), + Arrays.asList(node), + true, + maxHitsPerNode) .orElseThrow(() -> new IllegalStateException("Could not dispatch directly to " + node)); } @@ -190,7 +202,8 @@ public class Dispatcher extends AbstractComponent { query, OptionalInt.of(group.id()), group.nodes(), - acceptIncompleteCoverage); + acceptIncompleteCoverage, + maxHitsPerNode); if (invoker.isPresent()) { query.trace(false, 2, "Dispatching to group ", group.id()); query.getModel().setSearchPath("/" + group.id()); |