summaryrefslogtreecommitdiff
path: root/src/mongo/db/fts/fts_spec.cpp
diff options
context:
space:
mode:
authorAdam Chelminski <adam.chelminski@mongodb.com>2015-07-29 15:05:21 -0400
committerAdam Chelminski <adam.chelminski@mongodb.com>2015-08-11 16:56:55 -0400
commit92eac3b57d8beaf063fced8839cd870f97826bb7 (patch)
tree0db84953876345d4725576538c14783cb81391e9 /src/mongo/db/fts/fts_spec.cpp
parent657343ccff986bd2f8c46fc7455db4238e8801d1 (diff)
downloadmongo-92eac3b57d8beaf063fced8839cd870f97826bb7.tar.gz
SERVER-19557 Add text index v3
Diffstat (limited to 'src/mongo/db/fts/fts_spec.cpp')
-rw-r--r--src/mongo/db/fts/fts_spec.cpp38
1 files changed, 24 insertions, 14 deletions
diff --git a/src/mongo/db/fts/fts_spec.cpp b/src/mongo/db/fts/fts_spec.cpp
index 1ec72152351..5e5fbeaefa3 100644
--- a/src/mongo/db/fts/fts_spec.cpp
+++ b/src/mongo/db/fts/fts_spec.cpp
@@ -73,18 +73,26 @@ FTSSpec::FTSSpec(const BSONObj& indexInfo) {
"found invalid spec for text index, expected number for textIndexVersion",
textIndexVersionElt.isNumber());
- // We currently support TEXT_INDEX_VERSION_1 (deprecated) and TEXT_INDEX_VERSION_2.
+ // We currently support TEXT_INDEX_VERSION_1 (deprecated), TEXT_INDEX_VERSION_2, and
+ // TEXT_INDEX_VERSION_3.
// Reject all other values.
- massert(17364,
- str::stream() << "attempt to use unsupported textIndexVersion "
- << textIndexVersionElt.numberInt() << "; versions supported: "
- << TEXT_INDEX_VERSION_2 << ", " << TEXT_INDEX_VERSION_1,
- textIndexVersionElt.numberInt() == TEXT_INDEX_VERSION_2 ||
- textIndexVersionElt.numberInt() == TEXT_INDEX_VERSION_1);
-
- _textIndexVersion = (textIndexVersionElt.numberInt() == TEXT_INDEX_VERSION_2)
- ? TEXT_INDEX_VERSION_2
- : TEXT_INDEX_VERSION_1;
+ switch (textIndexVersionElt.numberInt()) {
+ case TEXT_INDEX_VERSION_3:
+ _textIndexVersion = TEXT_INDEX_VERSION_3;
+ break;
+ case TEXT_INDEX_VERSION_2:
+ _textIndexVersion = TEXT_INDEX_VERSION_2;
+ break;
+ case TEXT_INDEX_VERSION_1:
+ _textIndexVersion = TEXT_INDEX_VERSION_1;
+ break;
+ default:
+ msgasserted(17364,
+ str::stream() << "attempt to use unsupported textIndexVersion "
+ << textIndexVersionElt.numberInt()
+ << "; versions supported: " << TEXT_INDEX_VERSION_3 << ", "
+ << TEXT_INDEX_VERSION_2 << ", " << TEXT_INDEX_VERSION_1);
+ }
// Initialize _defaultLanguage. Note that the FTSLanguage constructor requires
// textIndexVersion, since language parsing is version-specific.
@@ -384,7 +392,7 @@ BSONObj FTSSpec::fixSpec(const BSONObj& spec) {
}
uassert(17264,
"default_language is not valid",
- FTSLanguage::make(default_language, TEXT_INDEX_VERSION_2).getStatus().isOK());
+ FTSLanguage::make(default_language, TEXT_INDEX_VERSION_3).getStatus().isOK());
BSONElement language_override_elt = spec["language_override"];
string language_override(language_override_elt.str());
@@ -397,7 +405,7 @@ BSONObj FTSSpec::fixSpec(const BSONObj& spec) {
}
int version = -1;
- int textIndexVersion = TEXT_INDEX_VERSION_2;
+ int textIndexVersion = TEXT_INDEX_VERSION_3; // default text index version
BSONObjBuilder b;
BSONObjIterator i(spec);
@@ -421,7 +429,9 @@ BSONObj FTSSpec::fixSpec(const BSONObj& spec) {
textIndexVersion = e.numberInt();
uassert(16730,
str::stream() << "bad textIndexVersion: " << textIndexVersion,
- textIndexVersion == TEXT_INDEX_VERSION_2);
+ textIndexVersion == TEXT_INDEX_VERSION_2 ||
+ textIndexVersion == TEXT_INDEX_VERSION_3); // supported indexes
+
} else {
b.append(e);
}