bool CWizSearchIndexer::updateDocuments(const CWizDocumentDataArray& arrayDocuments) { Q_ASSERT(!arrayDocuments.empty()); void* pHandle = NULL; bool ret = WizFTSBeginUpdateDocument(m_strIndexPath.toStdWString().c_str(), &pHandle); if (!ret) { TOLOG("begin update failed while update FTS index"); return false; } int nErrors = 0; for (int i = 0; i < arrayDocuments.size(); i++) { WIZDOCUMENTDATAEX doc = arrayDocuments.at(i); if (!_updateDocumentImpl(pHandle, doc)) nErrors++; } ret = WizFTSEndUpdateDocument(pHandle); if (!ret) { TOLOG("end update failed while update FTS index"); return false; } if (nErrors >= 5) { return false; } return true; }
bool CWizSearchIndexer::deleteDocuments(const CWizDocumentDataArray& arrayDocuments) { Q_ASSERT(!arrayDocuments.empty()); bool ret = true; for (int i = 0; i < arrayDocuments.size(); i++) { WIZDOCUMENTDATAEX doc = arrayDocuments.at(i); int ret = WizFTSDeleteDocument(m_strIndexPath.toStdWString().c_str(), doc.strGUID.toStdWString().c_str()); if (!ret) { TOLOG("delete FTS index failed: " + doc.strTitle); ret = false; } } return ret; }