diff options
Diffstat (limited to 'src/mongo/db/fts/fts_matcher.h')
-rw-r--r-- | src/mongo/db/fts/fts_matcher.h | 138 |
1 files changed, 69 insertions, 69 deletions
diff --git a/src/mongo/db/fts/fts_matcher.h b/src/mongo/db/fts/fts_matcher.h index 058dcc7bcb6..00fe8291c4d 100644 --- a/src/mongo/db/fts/fts_matcher.h +++ b/src/mongo/db/fts/fts_matcher.h @@ -36,74 +36,74 @@ namespace mongo { - namespace fts { - - class FTSMatcher { - MONGO_DISALLOW_COPYING( FTSMatcher ); - public: - FTSMatcher( const FTSQuery& query, const FTSSpec& spec ); - - /** - * Returns whether 'obj' matches the query. An object is considered to match the query - * if all four of the following conditions hold: - * 1) The object contains at least one positive term. - * 2) The object contains zero negative terms. - * 3) The object contains all positive phrases. - * 4) The object contains zero negative phrases. - */ - bool matches( const BSONObj& obj ) const; - - /** - * Returns whether 'obj' contains at least one positive term. - */ - bool hasPositiveTerm( const BSONObj& obj ) const; - - /** - * Returns whether 'obj' contains at least one negative term. - */ - bool hasNegativeTerm( const BSONObj& obj ) const; - - /** - * Returns whether 'obj' contains all positive phrases. - */ - bool positivePhrasesMatch( const BSONObj& obj ) const; - - /** - * Returns whether 'obj' contains zero negative phrases. - */ - bool negativePhrasesMatch( const BSONObj& obj ) const; - - private: - /** - * For matching, can we skip the positive term check? This is done as optimization when - * we have a-priori knowledge that all documents being matched pass the positive term - * check. - */ - bool canSkipPositiveTermCheck() const { return !_query.getCaseSensitive(); } - - /** - * Returns whether the string 'raw' contains any positive terms from the query. - * 'language' specifies the language for 'raw'. - */ - bool _hasPositiveTerm_string( const FTSLanguage* language, - const std::string& raw ) const; - - /** - * Returns whether the string 'raw' contains any negative terms from the query. - * 'language' specifies the language for 'raw'. - */ - bool _hasNegativeTerm_string( const FTSLanguage* language, - const std::string& raw ) const; - - /** - * Returns whether 'obj' contains the exact string 'phrase' in any indexed fields. - */ - bool _phraseMatch( const std::string& phrase, const BSONObj& obj ) const; - - // TODO These should be unowned pointers instead of owned copies. - const FTSQuery _query; - const FTSSpec _spec; - }; - +namespace fts { + +class FTSMatcher { + MONGO_DISALLOW_COPYING(FTSMatcher); + +public: + FTSMatcher(const FTSQuery& query, const FTSSpec& spec); + + /** + * Returns whether 'obj' matches the query. An object is considered to match the query + * if all four of the following conditions hold: + * 1) The object contains at least one positive term. + * 2) The object contains zero negative terms. + * 3) The object contains all positive phrases. + * 4) The object contains zero negative phrases. + */ + bool matches(const BSONObj& obj) const; + + /** + * Returns whether 'obj' contains at least one positive term. + */ + bool hasPositiveTerm(const BSONObj& obj) const; + + /** + * Returns whether 'obj' contains at least one negative term. + */ + bool hasNegativeTerm(const BSONObj& obj) const; + + /** + * Returns whether 'obj' contains all positive phrases. + */ + bool positivePhrasesMatch(const BSONObj& obj) const; + + /** + * Returns whether 'obj' contains zero negative phrases. + */ + bool negativePhrasesMatch(const BSONObj& obj) const; + +private: + /** + * For matching, can we skip the positive term check? This is done as optimization when + * we have a-priori knowledge that all documents being matched pass the positive term + * check. + */ + bool canSkipPositiveTermCheck() const { + return !_query.getCaseSensitive(); } + + /** + * Returns whether the string 'raw' contains any positive terms from the query. + * 'language' specifies the language for 'raw'. + */ + bool _hasPositiveTerm_string(const FTSLanguage* language, const std::string& raw) const; + + /** + * Returns whether the string 'raw' contains any negative terms from the query. + * 'language' specifies the language for 'raw'. + */ + bool _hasNegativeTerm_string(const FTSLanguage* language, const std::string& raw) const; + + /** + * Returns whether 'obj' contains the exact string 'phrase' in any indexed fields. + */ + bool _phraseMatch(const std::string& phrase, const BSONObj& obj) const; + + // TODO These should be unowned pointers instead of owned copies. + const FTSQuery _query; + const FTSSpec _spec; +}; +} } |