diff options
author | Jon Bratseth <bratseth@oath.com> | 2020-01-07 12:23:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-07 12:23:57 +0100 |
commit | 60f0c5cc078e67b5d5d9f22eb4e8e9067816e77c (patch) | |
tree | e25d170c343310a055003c3b4d26334a5e081830 | |
parent | 373772227dc43eb3f1625220e1870583ef2ec233 (diff) | |
parent | 05f94eee4341fecd071d7fddc6df9787ce641dff (diff) |
Merge pull request #11667 from vespa-engine/bratseth/modify-result-immediately
Modify result immediately
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/federation/FederationResult.java | 1 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/federation/FederationSearcher.java | 8 |
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(); |