diff options
Diffstat (limited to 'icing/scoring/scoring-processor.cc')
-rw-r--r-- | icing/scoring/scoring-processor.cc | 17 |
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; } |