diff --git a/src/engine/writetransaction.cpp b/src/engine/writetransaction.cpp --- a/src/engine/writetransaction.cpp +++ b/src/engine/writetransaction.cpp @@ -185,27 +185,33 @@ QVector prevTerms = documentTermsDB.get(id); QVector docTerms = replaceTerms(id, prevTerms, doc.m_terms); - documentTermsDB.put(id, docTerms); + if (docTerms != prevTerms) { + documentTermsDB.put(id, docTerms); + } } if (operations & XAttrTerms) { QVector prevTerms = documentXattrTermsDB.get(id); QVector docXattrTerms = replaceTerms(id, prevTerms, doc.m_xattrTerms); - if (!docXattrTerms.isEmpty()) - documentXattrTermsDB.put(id, docXattrTerms); - else - documentXattrTermsDB.del(id); + if (docXattrTerms != prevTerms) { + if (!docXattrTerms.isEmpty()) + documentXattrTermsDB.put(id, docXattrTerms); + else + documentXattrTermsDB.del(id); + } } if (operations & FileNameTerms) { QVector prevTerms = documentFileNameTermsDB.get(id); QVector docFileNameTerms = replaceTerms(id, prevTerms, doc.m_fileNameTerms); - if (!docFileNameTerms.isEmpty()) - documentFileNameTermsDB.put(id, docFileNameTerms); - else - documentFileNameTermsDB.del(id); + if (docFileNameTerms != prevTerms) { + if (!docFileNameTerms.isEmpty()) + documentFileNameTermsDB.put(id, docFileNameTerms); + else + documentFileNameTermsDB.del(id); + } } if (doc.contentIndexing()) {