aboutsummaryrefslogtreecommitdiff
path: root/icing/scoring/scoring-processor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'icing/scoring/scoring-processor.cc')
-rw-r--r--icing/scoring/scoring-processor.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/icing/scoring/scoring-processor.cc b/icing/scoring/scoring-processor.cc
index 8284426..b827bd8 100644
--- a/icing/scoring/scoring-processor.cc
+++ b/icing/scoring/scoring-processor.cc
@@ -14,7 +14,9 @@
#include "icing/scoring/scoring-processor.h"
+#include <limits>
#include <memory>
+#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
@@ -68,7 +70,8 @@ ScoringProcessor::Create(const ScoringSpecProto& scoring_spec,
std::vector<ScoredDocumentHit> ScoringProcessor::Score(
std::unique_ptr<DocHitInfoIterator> doc_hit_info_iterator, int num_to_score,
std::unordered_map<std::string, std::unique_ptr<DocHitInfoIterator>>*
- query_term_iterators) {
+ query_term_iterators,
+ QueryStatsProto::SearchStats* search_stats) {
std::vector<ScoredDocumentHit> scored_document_hits;
scorer_->PrepareToScore(query_term_iterators);
@@ -85,6 +88,18 @@ std::vector<ScoredDocumentHit> ScoringProcessor::Score(
doc_hit_info.document_id(), doc_hit_info.hit_section_ids_mask(), score);
}
+ if (search_stats != nullptr) {
+ search_stats->set_num_documents_scored(scored_document_hits.size());
+ DocHitInfoIterator::CallStats iterator_call_stats =
+ doc_hit_info_iterator->GetCallStats();
+ search_stats->set_num_fetched_hits_lite_index(
+ iterator_call_stats.num_leaf_advance_calls_lite_index);
+ search_stats->set_num_fetched_hits_main_index(
+ iterator_call_stats.num_leaf_advance_calls_main_index);
+ search_stats->set_num_fetched_hits_integer_index(
+ iterator_call_stats.num_leaf_advance_calls_integer_index);
+ }
+
return scored_document_hits;
}