diff options
Diffstat (limited to 'src/mongo/db/fts/fts_spec.cpp')
-rw-r--r-- | src/mongo/db/fts/fts_spec.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/fts/fts_spec.cpp b/src/mongo/db/fts/fts_spec.cpp index ab541b6a7f4..21c2ba1bb00 100644 --- a/src/mongo/db/fts/fts_spec.cpp +++ b/src/mongo/db/fts/fts_spec.cpp @@ -29,7 +29,7 @@ namespace mongo { using namespace mongoutils; const double MAX_WEIGHT = 1000000000.0; - + const double MAX_WORD_WEIGHT = MAX_WEIGHT / 10000; FTSSpec::FTSSpec( const BSONObj& indexInfo ) { _defaultLanguage = indexInfo["default_language"].valuestrsafe(); @@ -55,7 +55,7 @@ namespace mongo { else { double num = e.number(); _weights[ e.fieldName() ] = num; - verify( num > 0 && num < MAX_WEIGHT ); + verify( num > 0 && num < MAX_WORD_WEIGHT ); } } verify( _wildcard || _weights.size() ); @@ -336,8 +336,11 @@ namespace mongo { BSONObj weights; { BSONObjBuilder b; - for ( map<string,int>::iterator i = m.begin(); i != m.end(); ++i ) + for ( map<string,int>::iterator i = m.begin(); i != m.end(); ++i ) { + uassert( 16674, "score for word too high", + i->second > 0 && i->second < MAX_WORD_WEIGHT ); b.append( i->first, i->second ); + } weights = b.obj(); } |