Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(558)

Unified Diff: components/omnibox/browser/scored_history_match.h

Issue 2541143002: Omnibox - Boost Frequency Scores Based on Number of Matching Pages (Closed)
Patch Set: fix rebase errors Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/omnibox/browser/scored_history_match.h
diff --git a/components/omnibox/browser/scored_history_match.h b/components/omnibox/browser/scored_history_match.h
index a58c62a9ca78c83955f54c623ba58dbba5340189..51d18835b9609e9a93d45e40cfa770ff6fec7b67 100644
--- a/components/omnibox/browser/scored_history_match.h
+++ b/components/omnibox/browser/scored_history_match.h
@@ -16,6 +16,7 @@
#include "components/history/core/browser/history_match.h"
#include "components/history/core/browser/history_types.h"
#include "components/omnibox/browser/in_memory_url_index_types.h"
+#include "components/omnibox/browser/omnibox_field_trial.h"
class ScoredHistoryMatchTest;
@@ -48,9 +49,11 @@ struct ScoredHistoryMatch : public history::HistoryMatch {
// These offsets (".net" should have an offset of 1) come from
// |terms_to_word_starts_offsets|. |is_url_bookmarked| indicates whether the
// match's URL is referenced by any bookmarks, which can also affect the raw
- // score. The raw score allows the matches to be ordered and can be used to
- // influence the final score calculated by the client of this index. If the
- // row does not qualify the raw score will be 0.
+ // score. |num_matching_pages| indicates how many URLs in the eligible URL
+ // database match the user's input; it can also affect the raw score. The raw
+ // score allows the matches to be ordered and can be used to influence the
+ // final score calculated by the client of this index. If the row does not
+ // qualify the raw score will be 0.
ScoredHistoryMatch(const history::URLRow& row,
const VisitInfoVector& visits,
const base::string16& lower_string,
@@ -58,6 +61,7 @@ struct ScoredHistoryMatch : public history::HistoryMatch {
const WordStarts& terms_to_word_starts_offsets,
const RowWordStarts& word_starts,
bool is_url_bookmarked,
+ size_t num_matching_pages,
base::Time now);
~ScoredHistoryMatch();
@@ -98,6 +102,7 @@ struct ScoredHistoryMatch : public history::HistoryMatch {
private:
friend class ScoredHistoryMatchTest;
+ FRIEND_TEST_ALL_PREFIXES(ScoredHistoryMatchTest, GetDocumentSpecificityScore);
FRIEND_TEST_ALL_PREFIXES(ScoredHistoryMatchTest, GetFinalRelevancyScore);
FRIEND_TEST_ALL_PREFIXES(ScoredHistoryMatchTest, GetFrequency);
FRIEND_TEST_ALL_PREFIXES(ScoredHistoryMatchTest, GetHQPBucketsFromString);
@@ -133,10 +138,15 @@ struct ScoredHistoryMatch : public history::HistoryMatch {
const bool bookmarked,
const VisitInfoVector& visits) const;
- // Combines the two component scores into a final score that's an appropriate
- // value to use as a relevancy score.
+ // Returns a document specificity score based on how many pages matched the
+ // user's input.
+ float GetDocumentSpecificityScore(size_t num_matching_pages) const;
+
+ // Combines the three component scores into a final score that's
+ // an appropriate value to use as a relevancy score.
static float GetFinalRelevancyScore(float topicality_score,
- float frequency_score);
+ float frequency_score,
+ float specificity_score);
// Helper function that returns the string containing the scoring buckets
// (either the default ones or ones specified in an experiment).
@@ -191,6 +201,11 @@ struct ScoredHistoryMatch : public history::HistoryMatch {
// overrides the static local variable |relevance_buckets| declared in
// GetFinalRelevancyScore().
static ScoreMaxRelevances* relevance_buckets_override_;
+
+ // Used for testing. If this pointer is not null, it overrides the static
+ // local variable |default_matches_to_specificity| declared in
+ // GetDocumentSpecificityScore().
+ static OmniboxFieldTrial::NumMatchesScores* matches_to_specificity_override_;
};
typedef std::vector<ScoredHistoryMatch> ScoredHistoryMatches;
« no previous file with comments | « components/omnibox/browser/omnibox_field_trial.cc ('k') | components/omnibox/browser/scored_history_match.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698