Akonadi Search
11 #include "akonadi_search_pim_debug.h"
12 #include "notequery.h"
13 #include "resultiterator_p.h"
18 #include <QStandardPaths>
22 class Akonadi::Search::PIM::NoteQueryPrivate
25 NoteQueryPrivate() =
default;
32 NoteQuery::NoteQuery()
34 , d(new NoteQueryPrivate)
38 NoteQuery::~NoteQuery() =
default;
40 void NoteQuery::matchTitle(
const QString &title)
45 void NoteQuery::matchNote(
const QString ¬e)
50 void NoteQuery::setLimit(
int limit)
55 int NoteQuery::limit()
const
62 const QString dir = defaultLocation(QStringLiteral(
"notes"));
67 }
catch (
const Xapian::DatabaseOpeningError &) {
68 qCWarning(AKONADI_SEARCH_PIM_LOG) <<
"Xapian Database does not exist at " <<
dir;
70 }
catch (
const Xapian::DatabaseCorruptError &) {
71 qCWarning(AKONADI_SEARCH_PIM_LOG) <<
"Xapian Database corrupted";
73 }
catch (
const Xapian::DatabaseError &e) {
74 qCWarning(AKONADI_SEARCH_PIM_LOG) <<
"Failed to open Xapian database:" <<
QString::fromStdString(e.get_error_string());
77 qCWarning(AKONADI_SEARCH_PIM_LOG) <<
"Random exception, but we do not want to crash";
83 if (!d->note.isEmpty()) {
84 Xapian::QueryParser parser;
85 parser.set_database(db);
86 parser.add_prefix(
"",
"BO");
89 m_queries << parser.parse_query(baNote.
constData(), Xapian::QueryParser::FLAG_PARTIAL);
92 if (!d->title.isEmpty()) {
93 Xapian::QueryParser parser;
94 parser.set_database(db);
95 parser.add_prefix(
"",
"SU");
96 parser.set_default_op(Xapian::Query::OP_AND);
99 m_queries << parser.parse_query(baTitle.
constData(), Xapian::QueryParser::FLAG_PARTIAL);
102 Xapian::Query
query(Xapian::Query::OP_OR, m_queries.
begin(), m_queries.
end());
105 Xapian::Enquire enquire(db);
106 enquire.set_query(query);
112 Xapian::MSet matches = enquire.get_mset(0, d->limit);
115 iter.d->init(matches);
117 }
catch (
const Xapian::Error &e) {
std::optional< QSqlQuery > query(const QString &queryStatement)
QByteArray encodeName(const QString &fileName)
QString fromStdString(const std::string &str)
KIOFILEWIDGETS_EXPORT QString dir(const QString &fileClass)
const char * constData() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Fri Dec 1 2023 04:09:05 by
doxygen 1.8.17 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.