default to path search, not content, removed unneeded methods

This commit is contained in:
Albert S. 2018-09-02 12:38:07 +02:00
父節點 4b82393809
當前提交 4ccc4c27f1
共有 2 個檔案被更改,包括 2 行新增45 行删除

查看文件

@ -14,13 +14,6 @@ SearchWorker::SearchWorker(const QString &dbpath)
{
qDebug() << "failed to open database";
}
queryContent = new QSqlQuery(db);
queryFile = new QSqlQuery(db);
queryFile->prepare("SELECT path, mtime FROM file WHERE path LIKE ? ORDER BY mtime DESC");
queryContent->prepare("SELECT file.path, content.page, file.mtime FROM file INNER JOIN content ON file.id = "
"content.fileid INNER JOIN content_fts ON content.id = content_fts.ROWID WHERE "
"content_fts.content MATCH ? ORDER By file.mtime DESC, content.page ASC");
}
QVector<SearchWorker::Command> SearchWorker::tokenize(QString expression)
@ -67,7 +60,7 @@ QVector<SearchWorker::Command> SearchWorker::tokenize(QString expression)
result.append(Command("AND"));
}
wasbool = false;
result.append(Command("contains", loneword));
result.append(Command("path.contains", loneword));
}
if(filtername != "")
{
@ -113,7 +106,7 @@ QString SearchWorker::createSql(const SearchWorker::Command &cmd)
{
return " content.page = " + value;
}
if(key == "contains")
if(key == "contains" || key == "c")
{
return " ( COALESCE( (SELECT 1 FROM content_fts WHERE content_fts.content MATCH '" + value +
"' AND content_fts.ROWID= content.id), 0 ) )";
@ -132,38 +125,6 @@ QString SearchWorker::makeSql(const QVector<SearchWorker::Command> &tokens)
}
return result;
}
void SearchWorker::searchForFile(const QString &query)
{
QVector<SearchResult> results;
queryFile->addBindValue("%" + query + "%");
queryFile->exec();
while(queryFile->next())
{
SearchResult result;
result.page = 0;
result.path = queryFile->value(0).toString();
result.mtime = queryFile->value(1).toUInt();
results.append(result);
}
emit searchResultsReady(results);
}
void SearchWorker::searchForContent(const QString &query)
{
QVector<SearchResult> results;
queryContent->addBindValue(query);
queryContent->exec();
while(queryContent->next())
{
SearchResult result;
result.path = queryContent->value(0).toString();
result.page = queryContent->value(1).toUInt();
result.mtime = queryContent->value(2).toUInt();
results.append(result);
}
emit searchResultsReady(results);
}
void SearchWorker::search(const QString &query)
{

查看文件

@ -24,8 +24,6 @@ class SearchWorker : public QObject
Q_OBJECT
private:
QSqlQuery *queryFile;
QSqlQuery *queryContent;
QVector<Command> tokenize(QString expression);
QString createSql(const Command &cmd);
QString makeSql(const QVector<Command> &tokens);
@ -35,8 +33,6 @@ class SearchWorker : public QObject
SearchWorker();
SearchWorker(const QString &dbpath);
public slots:
void searchForFile(const QString &query);
void searchForContent(const QString &query);
void search(const QString &query);
signals:
void searchResultsReady(const QVector<SearchResult> &results);