aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-07 08:40:54 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-07 08:40:54 +0100
commit05f94eee4341fecd071d7fddc6df9787ce641dff (patch)
tree802de64f124e293f61a5ce5ec50eb0e8a8d3bee9 /container-search
parent58ee6c6e9c9a07a3d18742da766740dc1f5d9a32 (diff)
Modify result immediately
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationResult.java1
-rw-r--r--container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java8
2 files changed, 6 insertions, 3 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java b/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
index e26bf153eb3..5f1cfccf549 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationResult.java
@@ -94,6 +94,7 @@ class FederationResult {
public Optional<Result> getIfAvailable(long timeout) {
if (availableResult.isPresent()) return availableResult;
availableResult = futureResult.getIfAvailable(timeout, TimeUnit.MILLISECONDS);
+ availableResult.ifPresent(result -> target.modifyTargetResult(result));
return availableResult;
}
diff --git a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
index ec1836fd07b..c5573dc8fee 100644
--- a/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
+++ b/container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java
@@ -226,12 +226,15 @@ public class FederationSearcher extends ForkingSearcher {
if (timeout <= 0) return Optional.empty();
Execution newExecution = new Execution(target.getChain(), execution.context());
+ Result result;
if (strictSearchchain) {
query.resetTimeout();
- return Optional.of(newExecution.search(createFederationQuery(query, query, Window.from(query), timeout, target)));
+ result = newExecution.search(createFederationQuery(query, query, Window.from(query), timeout, target));
} else {
- return Optional.of(newExecution.search(cloneFederationQuery(query, Window.from(query), timeout, target)));
+ result = newExecution.search(cloneFederationQuery(query, Window.from(query), timeout, target));
}
+ target.modifyTargetResult(result);
+ return Optional.of(result);
}
private FederationResult search(Query query, Execution execution, Collection<Target> targets) {
@@ -558,7 +561,6 @@ public class FederationSearcher extends ForkingSearcher {
}
private void mergeResult(Query query, Target target, Result mergedResults, Result result) {
- target.modifyTargetResult(result);
ComponentId searchChainId = target.getId();
Chain<Searcher> searchChain = target.getChain();