summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2021-10-09 11:41:25 +0200
committerGitHub <noreply@github.com>2021-10-09 11:41:25 +0200
commit49acaa81c697eb979c67b4c7b816142c4b2b9e93 (patch)
tree0f4d24ab9132b74c8b94d08f0ae658e7414bdf0e /container-search/src/main/java/com
parent82014c284b0e51f059b801c9e97ba0de442edbfe (diff)
parentf5d36485496d2cffb14962e30224dbf0f7a05f52 (diff)
Merge pull request #19483 from vespa-engine/arnej/continue-grouping-if-errors
Continue grouping even when there is an error
Diffstat (limited to 'container-search/src/main/java/com')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java16
1 files changed, 5 insertions, 11 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
index d34d5594ef7..21db47908a8 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java
@@ -210,7 +210,6 @@ public class GroupingExecutor extends Searcher {
// Perform multi-pass query to complete all grouping requests.
Item origRoot = query.getModel().getQueryTree().getRoot();
- int prePassErrors = query.errors().size();
Result ret = null;
Item baseRoot = origRoot;
if (lastPass > 0) {
@@ -247,20 +246,15 @@ public class GroupingExecutor extends Searcher {
}
setGroupingList(query, passList);
Result passResult = execution.search(query);
- if (passResult.hits().getError() != null) {
- if (firstPass) {
- if (passResult.hits().getErrorHit().errors().size() > prePassErrors ||
- passResult.hits().getErrorHit().errors().size() == 0) {
- return passResult;
- }
- } else {
- return passResult;
- }
- }
Map<Integer, Grouping> passGroupingMap = mergeGroupingResults(passResult);
mergeGroupingMaps(groupingMap, passGroupingMap);
if (firstPass) {
ret = passResult;
+ } else {
+ ErrorMessage err = passResult.hits().getError();
+ if (err != null) {
+ ret.hits().addError(err);
+ }
}
}
if (log.isLoggable(Level.FINE)) {