本文整理汇总了C++中xapian::WritableDatabase::delete_document方法的典型用法代码示例。如果您正苦于以下问题:C++ WritableDatabase::delete_document方法的具体用法?C++ WritableDatabase::delete_document怎么用?C++ WritableDatabase::delete_document使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xapian::WritableDatabase
的用法示例。
在下文中一共展示了WritableDatabase::delete_document方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deleteDocuments
bool XapianIndex::deleteDocuments(const string &term)
{
bool unindexed = false;
if (term.empty() == true)
{
return false;
}
XapianDatabase *pDatabase = XapianDatabaseFactory::getDatabase(m_databaseName, false);
if (pDatabase == NULL)
{
cerr << "Bad index " << m_databaseName << endl;
return false;
}
try
{
Xapian::WritableDatabase *pIndex = pDatabase->writeLock();
if (pIndex != NULL)
{
#ifdef DEBUG
cout << "XapianIndex::deleteDocuments: term is " << term << endl;
#endif
// Delete documents from the index
pIndex->delete_document(term);
unindexed = true;
}
}
catch (const Xapian::Error &error)
{
cerr << "Couldn't unindex documents: " << error.get_type() << ": " << error.get_msg() << endl;
}
catch (...)
{
cerr << "Couldn't unindex documents, unknown exception occured" << endl;
}
pDatabase->unlock();
return unindexed;
}
示例2: unindexDocuments
/// Unindexes documents with the given label.
bool XapianIndex::unindexDocuments(const string &labelName)
{
bool unindexed = false;
if (labelName.empty() == true)
{
return false;
}
XapianDatabase *pDatabase = XapianDatabaseFactory::getDatabase(m_databaseName, false);
if (pDatabase == NULL)
{
cerr << "Bad index " << m_databaseName << endl;
return false;
}
try
{
Xapian::WritableDatabase *pIndex = pDatabase->writeLock();
if (pIndex != NULL)
{
string term("XLABEL:");
// Delete documents from the index
term += labelName;
pIndex->delete_document(term);
unindexed = true;
}
}
catch (const Xapian::Error &error)
{
cerr << "Couldn't unindex documents: " << error.get_type() << ": " << error.get_msg() << endl;
}
catch (...)
{
cerr << "Couldn't unindex documents, unknown exception occured" << endl;
}
pDatabase->unlock();
return unindexed;
}
示例3: unindexDocument
/// Unindexes the given document; true if success.
bool XapianIndex::unindexDocument(unsigned int docId)
{
bool unindexed = false;
if (docId == 0)
{
return false;
}
XapianDatabase *pDatabase = XapianDatabaseFactory::getDatabase(m_databaseName, false);
if (pDatabase == NULL)
{
cerr << "Bad index " << m_databaseName << endl;
return false;
}
try
{
Xapian::WritableDatabase *pIndex = pDatabase->writeLock();
if (pIndex != NULL)
{
// Delete the document from the index
pIndex->delete_document(docId);
unindexed = true;
}
}
catch (const Xapian::Error &error)
{
cerr << "Couldn't unindex document: " << error.get_type() << ": " << error.get_msg() << endl;
}
catch (...)
{
cerr << "Couldn't unindex document, unknown exception occured" << endl;
}
pDatabase->unlock();
return unindexed;
}