diff --git a/include/searcher.h b/include/searcher.h index 9362f8b6e..52b65bb2e 100644 --- a/include/searcher.h +++ b/include/searcher.h @@ -111,8 +111,10 @@ class Searcher * * @param reader The Reader for the zim containing the fulltext index. * @param humanReaderName The human readable name of the reader. + * @return true if the reader has been added. + * false if the reader cannot be added (no embedded fulltext index present) */ - void add_reader(Reader* reader, const std::string& humanReaderName); + bool add_reader(Reader* reader, const std::string& humanReaderName); /** * Start a search on the zim associated to the Searcher. diff --git a/src/searcher.cpp b/src/searcher.cpp index c7c6222f3..61f97d686 100644 --- a/src/searcher.cpp +++ b/src/searcher.cpp @@ -118,10 +118,14 @@ Searcher::~Searcher() delete internal; } -void Searcher::add_reader(Reader* reader, const std::string& humanReadableName) +bool Searcher::add_reader(Reader* reader, const std::string& humanReadableName) { + if (!reader->hasFulltextIndex()) { + return false; + } this->readers.push_back(reader); this->humanReaderNames.push_back(humanReadableName); + return true; } /* Search strings in the database */ @@ -166,7 +170,9 @@ void Searcher::search(std::string& search, std::vector zims; for (auto current = this->readers.begin(); current != this->readers.end(); current++) { - zims.push_back((*current)->getZimFileHandler()); + if ( (*current)->hasFulltextIndex() ) { + zims.push_back((*current)->getZimFileHandler()); + } } zim::Search* search = new zim::Search(zims); search->set_query(unaccentedSearch);