summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/Coverage.java17
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java5
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/Coverage.java8
3 files changed, 24 insertions, 6 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/Coverage.java b/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
index 9f63ff6e68c..481e3f5ba97 100644
--- a/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
+++ b/container-core/src/main/java/com/yahoo/container/handler/Coverage.java
@@ -17,6 +17,7 @@ public class Coverage {
protected long soonActive;
protected int degradedReason;
protected int nodes;
+ private int nodesTried;
protected int resultSets;
protected int fullResultSets;
@@ -34,8 +35,7 @@ public class Coverage {
/**
* Build an invalid instance to initiate manually.
*/
- protected Coverage() {
- }
+ protected Coverage() { }
protected Coverage(long docs, long active, int nodes, int resultSets) {
this(docs, active, nodes, resultSets, FullCoverageDefinition.DOCUMENT_COUNT);
@@ -53,6 +53,7 @@ public class Coverage {
private Coverage(long docs, long active, int nodes, int resultSets, FullCoverageDefinition fullReason) {
this.docs = docs;
this.nodes = nodes;
+ this.nodesTried = nodes;
this.active = active;
this.soonActive = active;
this.degradedReason = 0;
@@ -67,6 +68,7 @@ public class Coverage {
}
docs += other.getDocs();
nodes += other.getNodes();
+ nodesTried += other.nodesTried;
active += other.getActive();
soonActive += other.getSoonActive();
degradedReason |= other.degradedReason;
@@ -137,13 +139,22 @@ public class Coverage {
}
/**
- * @return the number of search instances which participated in the search.
+ * @return the number of search instances which participated successfully in the search.
*/
public int getNodes() {
return nodes;
}
/**
+ * @return the number of search instances which tried to participate in the search.
+ */
+ public int getNodesTried() {
+ return nodesTried;
+ }
+
+ public Coverage setNodesTried(int nodesTried) { this.nodesTried = nodesTried; return this; }
+
+ /**
* A Coverage instance contains coverage information for potentially more
* than one search. If several queries, e.g. through blending of results
* from multiple clusters, produced a result set, this number will show how
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
index ea354e1291f..3320c167702 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/VespaBackEndSearcher.java
@@ -465,9 +465,10 @@ public abstract class VespaBackEndSearcher extends PingableSearcher {
}
if (resultPacket.getCoverageFeature()) {
- result.setCoverage(new Coverage(resultPacket.getCoverageDocs(), resultPacket.getActiveDocs())
+ result.setCoverage(new Coverage(resultPacket.getCoverageDocs(), resultPacket.getActiveDocs(), resultPacket.getNodesReplied())
.setSoonActive(resultPacket.getSoonActiveDocs())
- .setDegradedReason(resultPacket.getDegradedReason()));
+ .setDegradedReason(resultPacket.getDegradedReason())
+ .setNodesTried(resultPacket.getNodesQueried()));
}
}
diff --git a/container-search/src/main/java/com/yahoo/search/result/Coverage.java b/container-search/src/main/java/com/yahoo/search/result/Coverage.java
index bd1245ea2ff..81aa4a08f18 100644
--- a/container-search/src/main/java/com/yahoo/search/result/Coverage.java
+++ b/container-search/src/main/java/com/yahoo/search/result/Coverage.java
@@ -12,7 +12,11 @@ import com.google.common.annotations.Beta;
public class Coverage extends com.yahoo.container.handler.Coverage {
public Coverage(long docs, long active) {
- super(docs, active, 0, 1);
+ this(docs, active, 0);
+ }
+
+ public Coverage(long docs, long active, int nodes) {
+ super(docs, active, nodes, 1);
}
@Deprecated
@@ -40,4 +44,6 @@ public class Coverage extends com.yahoo.container.handler.Coverage {
*/
public Coverage setDegradedReason(int degradedReason) { this.degradedReason = degradedReason; return this; }
+ public Coverage setNodesTried(int nodesTried) { super.setNodesTried(nodesTried); return this; }
+
}