mirror of https://github.com/kiwix/libkiwix.git
Extracted buildXapianQuery()
This commit is contained in:
parent
80cd1fc989
commit
ea779ac200
|
@ -295,12 +295,11 @@ void Library::updateBookDB(const Book& book)
|
||||||
m_bookDB->replace_document(idterm, doc);
|
m_bookDB->replace_document(idterm, doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
Library::BookIdCollection Library::filterViaBookDB(const Filter& filter)
|
namespace
|
||||||
{
|
{
|
||||||
if ( !filter.hasQuery() )
|
|
||||||
return getBooksIds();
|
|
||||||
|
|
||||||
BookIdCollection bookIds;
|
Xapian::Query buildXapianQuery(const Filter& filter)
|
||||||
|
{
|
||||||
Xapian::QueryParser queryParser;
|
Xapian::QueryParser queryParser;
|
||||||
queryParser.set_default_op(Xapian::Query::OP_AND);
|
queryParser.set_default_op(Xapian::Query::OP_AND);
|
||||||
queryParser.add_prefix("title", "S");
|
queryParser.add_prefix("title", "S");
|
||||||
|
@ -317,7 +316,19 @@ Library::BookIdCollection Library::filterViaBookDB(const Filter& filter)
|
||||||
| Xapian::QueryParser::FLAG_LOVEHATE
|
| Xapian::QueryParser::FLAG_LOVEHATE
|
||||||
| Xapian::QueryParser::FLAG_WILDCARD
|
| Xapian::QueryParser::FLAG_WILDCARD
|
||||||
| partialQueryFlag;
|
| partialQueryFlag;
|
||||||
const auto query = queryParser.parse_query(filter.getQuery(), flags);
|
return queryParser.parse_query(filter.getQuery(), flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // unnamed namespace
|
||||||
|
|
||||||
|
Library::BookIdCollection Library::filterViaBookDB(const Filter& filter)
|
||||||
|
{
|
||||||
|
if ( !filter.hasQuery() )
|
||||||
|
return getBooksIds();
|
||||||
|
|
||||||
|
BookIdCollection bookIds;
|
||||||
|
|
||||||
|
const auto query = buildXapianQuery(filter);
|
||||||
Xapian::Enquire enquire(*m_bookDB);
|
Xapian::Enquire enquire(*m_bookDB);
|
||||||
enquire.set_query(query);
|
enquire.set_query(query);
|
||||||
const auto results = enquire.get_mset(0, m_books.size());
|
const auto results = enquire.get_mset(0, m_books.size());
|
||||||
|
|
Loading…
Reference in New Issue