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

View file

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