summaryrefslogtreecommitdiff
path: root/src/mongo/db/fts/fts_language.h
diff options
context:
space:
mode:
authorAdam Chelminski <adam.chelminski@mongodb.com>2015-07-15 10:14:09 -0400
committerAdam Chelminski <adam.chelminski@mongodb.com>2015-07-29 16:59:04 -0400
commit852258ef9ec37856e22a8e1089507899a2396b00 (patch)
tree624155f8a779b29109f92eaec4982c94e9303e59 /src/mongo/db/fts/fts_language.h
parentf1bdf1bb55f93c63297f36ef22ed40d6d84872c9 (diff)
downloadmongo-852258ef9ec37856e22a8e1089507899a2396b00.tar.gz
SERVER-19421 Add abstractions for phrase matching in FTS
Diffstat (limited to 'src/mongo/db/fts/fts_language.h')
-rw-r--r--src/mongo/db/fts/fts_language.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/mongo/db/fts/fts_language.h b/src/mongo/db/fts/fts_language.h
index facdb8c9ce0..6c986f5de6e 100644
--- a/src/mongo/db/fts/fts_language.h
+++ b/src/mongo/db/fts/fts_language.h
@@ -30,6 +30,8 @@
#pragma once
+#include "mongo/db/fts/fts_basic_phrase_matcher.h"
+#include "mongo/db/fts/fts_phrase_matcher.h"
#include "mongo/db/fts/fts_util.h"
#include "mongo/base/status_with.h"
@@ -87,6 +89,11 @@ public:
virtual std::unique_ptr<FTSTokenizer> createTokenizer() const = 0;
/**
+ * Returns a reference to the phrase matcher instance that this language owns.
+ */
+ virtual const FTSPhraseMatcher& getPhraseMatcher() const = 0;
+
+ /**
* Register std::string 'languageName' as a new language with text index version
* 'textIndexVersion'. Saves the resulting language to out-argument 'languageOut'.
* Subsequent calls to FTSLanguage::make() will recognize the newly-registered language
@@ -133,7 +140,11 @@ typedef StatusWith<const FTSLanguage*> StatusWithFTSLanguage;
class BasicFTSLanguage : public FTSLanguage {
public:
- std::unique_ptr<FTSTokenizer> createTokenizer() const override;
+ std::unique_ptr<FTSTokenizer> createTokenizer() const final;
+ const FTSPhraseMatcher& getPhraseMatcher() const final;
+
+private:
+ BasicFTSPhraseMatcher _basicPhraseMatcher;
};
extern BasicFTSLanguage languagePorterV1;