fix: indexSearch should pass the searchregex

the current logic will use an empty regex ,make it will match any to-be-checked article
This commit is contained in:
Xiao YiFang 2022-06-04 23:55:04 +08:00
parent 37215e5dc3
commit ee2fc14311
2 changed files with 4 additions and 4 deletions

View file

@ -644,7 +644,7 @@ void FTSResultsRequest::checkArticles( QVector< uint32_t > const & offsets,
void FTSResultsRequest::indexSearch( BtreeIndexing::BtreeIndex & ftsIndex, void FTSResultsRequest::indexSearch( BtreeIndexing::BtreeIndex & ftsIndex,
sptr< ChunkedStorage::Reader > chunks, sptr< ChunkedStorage::Reader > chunks,
QStringList & indexWords, QStringList & indexWords,
QStringList & searchWords ) QStringList & searchWords, QRegExp & regexp )
{ {
// Find articles which contains all requested words // Find articles which contains all requested words
@ -714,7 +714,7 @@ void FTSResultsRequest::indexSearch( BtreeIndexing::BtreeIndex & ftsIndex,
dict.sortArticlesOffsetsForFTS( offsets, isCancelled ); dict.sortArticlesOffsetsForFTS( offsets, isCancelled );
checkArticles( offsets, searchWords ); checkArticles( offsets, searchWords, regexp );
} }
void FTSResultsRequest::combinedIndexSearch( BtreeIndexing::BtreeIndex & ftsIndex, void FTSResultsRequest::combinedIndexSearch( BtreeIndexing::BtreeIndex & ftsIndex,
@ -1048,7 +1048,7 @@ void FTSResultsRequest::run()
else else
{ {
if( searchMode == FTS::WholeWords ) if( searchMode == FTS::WholeWords )
indexSearch( ftsIndex, chunks, indexWords, searchWords ); indexSearch( ftsIndex, chunks, indexWords, searchWords, searchRegExp );
else else
fullIndexSearch( ftsIndex, chunks, indexWords, searchWords, searchRegExp ); fullIndexSearch( ftsIndex, chunks, indexWords, searchWords, searchRegExp );
} }

View file

@ -91,7 +91,7 @@ class FTSResultsRequest : public Dictionary::DataRequest
void indexSearch( BtreeIndexing::BtreeIndex & ftsIndex, void indexSearch( BtreeIndexing::BtreeIndex & ftsIndex,
sptr< ChunkedStorage::Reader > chunks, sptr< ChunkedStorage::Reader > chunks,
QStringList & indexWords, QStringList & indexWords,
QStringList & searchWords ); QStringList & searchWords, QRegExp & regexp );
void combinedIndexSearch( BtreeIndexing::BtreeIndex & ftsIndex, void combinedIndexSearch( BtreeIndexing::BtreeIndex & ftsIndex,
sptr< ChunkedStorage::Reader > chunks, sptr< ChunkedStorage::Reader > chunks,