From 6051c1247cde61bcc8e483eb4166e5a297c0ecc6 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 13 Oct 2016 18:38:35 +0200 Subject: Xapian based fulltext indexing This cuts into the sync performance by about 40%, but gives us fast fulltext searching for all local content. --- common/typeindex.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'common/typeindex.h') diff --git a/common/typeindex.h b/common/typeindex.h index 890c3db..b8b4d52 100644 --- a/common/typeindex.h +++ b/common/typeindex.h @@ -71,10 +71,10 @@ public: mCustomIndexer << CustomIndexer::Ptr::create(); } - void add(const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction); - void remove(const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction); + void add(const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction, const QByteArray &resourceInstanceId); + void remove(const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction, const QByteArray &resourceInstanceId); - QVector query(const Sink::QueryBase &query, QSet &appliedFilters, QByteArray &appliedSorting, Sink::Storage::DataStore::Transaction &transaction); + QVector query(const Sink::QueryBase &query, QSet &appliedFilters, QByteArray &appliedSorting, Sink::Storage::DataStore::Transaction &transaction, const QByteArray &resourceInstanceId); QVector lookup(const QByteArray &property, const QVariant &value, Sink::Storage::DataStore::Transaction &transaction); template @@ -104,10 +104,13 @@ public: template void unindex(const QByteArray &leftName, const QByteArray &rightName, const QVariant &leftValue, const QVariant &rightValue, Sink::Storage::DataStore::Transaction &transaction); + void commitTransaction(); + void abortTransaction(); + private: friend class Sink::Storage::EntityStore; - void updateIndex(bool add, const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction); + void updateIndex(bool add, const QByteArray &identifier, const Sink::ApplicationDomain::ApplicationDomainType &entity, Sink::Storage::DataStore::Transaction &transaction, const QByteArray &resourceInstanceId); QByteArray indexName(const QByteArray &property, const QByteArray &sortProperty = QByteArray()) const; Sink::Log::Context mLogCtx; QByteArray mType; -- cgit v1.2.3