From 7776eafbfc45ab9b81102159af2ed868cd2e56dc Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 9 Aug 2017 18:18:02 -0400 Subject: [PATCH 1/2] Correctly set ProtocolPrefix and SearchProtocolPrefix for searcher. Default `protocolPrefix` for the kiwix-lib searcher is `zim:://`. We have to change it to `/` for all searcher we create else the search's results will have a `zim://...` url, which will obviously won't work. --- src/server/kiwix-serve.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/kiwix-serve.cpp b/src/server/kiwix-serve.cpp index 483fab1..de1cda2 100644 --- a/src/server/kiwix-serve.cpp +++ b/src/server/kiwix-serve.cpp @@ -942,6 +942,8 @@ int main(int argc, char** argv) if ( reader->hasFulltextIndex()) { kiwix::Searcher* searcher = new kiwix::Searcher(); + searcher->setProtocolPrefix("/"); + searcher->setSearchProtocolPrefix("/search?"); searcher->add_reader(reader, humanReadableId); globalSearcher->add_reader(reader, humanReadableId); searchers[humanReadableId] = searcher; From 0cfcc594377be8fe304c08213f895717120674eb Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Thu, 10 Aug 2017 09:45:08 -0400 Subject: [PATCH 2/2] Update to new kiwix-lib API about Searcher instantiation. `kiwix-lib` remove `setContentHumanReadableId` method in favour of specifying directly it in the constructor. --- src/searcher/kiwix-search.cpp | 5 +++-- src/server/kiwix-serve.cpp | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/searcher/kiwix-search.cpp b/src/searcher/kiwix-search.cpp index 6da9d42..ed4aad3 100644 --- a/src/searcher/kiwix-search.cpp +++ b/src/searcher/kiwix-search.cpp @@ -86,10 +86,11 @@ int main(int argc, char** argv) } if (reader) { - searcher = new kiwix::Searcher("", reader); + searcher = new kiwix::Searcher(); + searcher->add_reader(reader, ""); } else { try { - searcher = new kiwix::Searcher(zimPath, NULL); + searcher = new kiwix::Searcher(zimPath, NULL, ""); } catch (...) { cerr << "Unable to search through zim '" << zimPath << "'." << endl; exit(1); diff --git a/src/server/kiwix-serve.cpp b/src/server/kiwix-serve.cpp index de1cda2..7219faf 100644 --- a/src/server/kiwix-serve.cpp +++ b/src/server/kiwix-serve.cpp @@ -949,10 +949,9 @@ int main(int argc, char** argv) searchers[humanReadableId] = searcher; } else if ( !indexPath.empty() ) { try { - kiwix::Searcher* searcher = new kiwix::Searcher(indexPath, reader); + kiwix::Searcher* searcher = new kiwix::Searcher(indexPath, reader, humanReadableId); searcher->setProtocolPrefix("/"); searcher->setSearchProtocolPrefix("/search?"); - searcher->setContentHumanReadableId(humanReadableId); searchers[humanReadableId] = searcher; } catch (...) { cerr << "Unable to open the search index '" << indexPath << "'."