diff --git a/include/searcher.h b/include/searcher.h index d3c0315e8..8acf929ce 100644 --- a/include/searcher.h +++ b/include/searcher.h @@ -48,7 +48,7 @@ class Result virtual std::string get_content() = 0; virtual int get_wordCount() = 0; virtual int get_size() = 0; - virtual int get_readerIndex() = 0; + virtual std::string get_zimId() = 0; }; struct SearcherInternal; diff --git a/src/search_renderer.cpp b/src/search_renderer.cpp index fa1c16dfa..0e503e330 100644 --- a/src/search_renderer.cpp +++ b/src/search_renderer.cpp @@ -77,9 +77,7 @@ std::string SearchRenderer::getHtml() result.set("title", p_result->get_title()); result.set("url", p_result->get_url()); result.set("snippet", p_result->get_snippet()); - auto readerIndex = p_result->get_readerIndex(); - auto reader = mp_searcher->get_reader(readerIndex); - result.set("resultContentId", mp_nameMapper->getNameForId(reader->getId())); + result.set("resultContentId", mp_nameMapper->getNameForId(p_result->get_zimId())); if (p_result->get_wordCount() >= 0) { result.set("wordCount", kiwix::beautifyInteger(p_result->get_wordCount())); diff --git a/src/searcher.cpp b/src/searcher.cpp index 65f6f25f8..6f3b54257 100644 --- a/src/searcher.cpp +++ b/src/searcher.cpp @@ -45,7 +45,7 @@ class _Result : public Result virtual std::string get_content(); virtual int get_wordCount(); virtual int get_size(); - virtual int get_readerIndex(); + virtual std::string get_zimId(); private: zim::SearchResultSet::iterator iterator; @@ -261,9 +261,11 @@ int _Result::get_wordCount() { return iterator.getWordCount(); } -int _Result::get_readerIndex() +std::string _Result::get_zimId() { - return iterator.getFileIndex(); + std::ostringstream s; + s << iterator.getZimId(); + return s.str(); }