aboutsummaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2020-01-07 12:23:57 +0100
committerGitHub <noreply@github.com>2020-01-07 12:23:57 +0100
commit60f0c5cc078e67b5d5d9f22eb4e8e9067816e77c (patch)
treee25d170c343310a055003c3b4d26334a5e081830 /container-search
parent373772227dc43eb3f1625220e1870583ef2ec233 (diff)
parent05f94eee4341fecd071d7fddc6df9787ce641dff (diff)
Merge pull request #11667 from vespa-engine/bratseth/modify-result-immediately
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();