summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcore/src/vespa/searchcore/fdispatch/search/fnet_search.cpp7
-rw-r--r--searchlib/src/tests/common/packets/packets_test.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/common/packets.cpp4
3 files changed, 10 insertions, 5 deletions
diff --git a/searchcore/src/vespa/searchcore/fdispatch/search/fnet_search.cpp b/searchcore/src/vespa/searchcore/fdispatch/search/fnet_search.cpp
index 98642c6edf6..4c47e381470 100644
--- a/searchcore/src/vespa/searchcore/fdispatch/search/fnet_search.cpp
+++ b/searchcore/src/vespa/searchcore/fdispatch/search/fnet_search.cpp
@@ -869,6 +869,8 @@ FastS_FNET_Search::CheckCoverage()
uint64_t activeDocs = 0;
uint64_t soonActiveDocs = 0;
uint32_t degradedReason = 0;
+ uint16_t nodesQueried = 0;
+ uint16_t nodesReplied = 0;
size_t cntNone(0);
for (const FastS_FNET_SearchNode & node : _nodes) {
@@ -877,14 +879,17 @@ FastS_FNET_Search::CheckCoverage()
activeDocs += node._qresult->_activeDocs;
soonActiveDocs += node._qresult->_soonActiveDocs;
degradedReason |= node._qresult->_coverageDegradeReason;
+ nodesQueried += node._qresult->getNodesQueried();
+ nodesReplied += node._qresult->getNodesReplied();
} else {
+ nodesQueried++;
cntNone++;
}
}
if ((cntNone > 0) && (cntNone != _nodes.size())) {
activeDocs += cntNone * activeDocs/(_nodes.size() - cntNone);
}
- _util.SetCoverage(covDocs, activeDocs, soonActiveDocs, degradedReason, _nodes.size(), _nodes.size() - cntNone);
+ _util.SetCoverage(covDocs, activeDocs, soonActiveDocs, degradedReason, nodesQueried, nodesReplied);
}
diff --git a/searchlib/src/tests/common/packets/packets_test.cpp b/searchlib/src/tests/common/packets/packets_test.cpp
index ad4cf02f4e8..999e370c67f 100644
--- a/searchlib/src/tests/common/packets/packets_test.cpp
+++ b/searchlib/src/tests/common/packets/packets_test.cpp
@@ -352,8 +352,8 @@ TEST("testQueryResultX") {
EXPECT_EQUAL(2u, ptr->_totNumDocs);
EXPECT_EQUAL((search::HitRank)3, ptr->_maxRank);
EXPECT_EQUAL(4u, ptr->getDistributionKey());
- EXPECT_EQUAL(ptr->_features & QRF_COVERAGE_NODES ? 12 : 0u, ptr->getNodesQueried());
- EXPECT_EQUAL(ptr->_features & QRF_COVERAGE_NODES ? 11 : 0u, ptr->getNodesReplied());
+ EXPECT_EQUAL(ptr->_features & QRF_COVERAGE_NODES ? 12 : 1u, ptr->getNodesQueried());
+ EXPECT_EQUAL(ptr->_features & QRF_COVERAGE_NODES ? 11 : 1u, ptr->getNodesReplied());
EXPECT_EQUAL(6u, ptr->_coverageDocs);
EXPECT_EQUAL(7u, ptr->_activeDocs);
EXPECT_EQUAL(8u, ptr->_soonActiveDocs);
diff --git a/searchlib/src/vespa/searchlib/common/packets.cpp b/searchlib/src/vespa/searchlib/common/packets.cpp
index 4bb11acaabb..7f512544a82 100644
--- a/searchlib/src/vespa/searchlib/common/packets.cpp
+++ b/searchlib/src/vespa/searchlib/common/packets.cpp
@@ -906,8 +906,8 @@ FS4Packet_QUERYRESULTX::AllocateHits(uint32_t cnt)
FS4Packet_QUERYRESULTX::FS4Packet_QUERYRESULTX()
: FS4Packet(),
_distributionKey(0),
- _nodesQueried(0),
- _nodesReplied(0),
+ _nodesQueried(1),
+ _nodesReplied(1),
_features(QRF_COVERAGE | QRF_EXTENDED_COVERAGE),
_offset(0),
_numDocs(0),