diff options
author | Adam Chelminski <adam.chelminski@mongodb.com> | 2015-07-29 15:05:21 -0400 |
---|---|---|
committer | Adam Chelminski <adam.chelminski@mongodb.com> | 2015-08-11 16:56:55 -0400 |
commit | 92eac3b57d8beaf063fced8839cd870f97826bb7 (patch) | |
tree | 0db84953876345d4725576538c14783cb81391e9 /src/mongo/db/fts/fts_spec.cpp | |
parent | 657343ccff986bd2f8c46fc7455db4238e8801d1 (diff) | |
download | mongo-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.cpp | 38 |
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); } |