diff --git a/include/searcher.h b/include/searcher.h index f9cdb4a4c..0aa98d17c 100644 --- a/include/searcher.h +++ b/include/searcher.h @@ -85,12 +85,12 @@ class Searcher * * @param search The search query. * @param resultStart the start offset of the search results (used for pagination). - * @param resultEnd the end offset of the search results (used for pagination). + * @param resultMax Maximum results to get from start (used for pagination). * @param verbose print some info on stdout if true. */ void search(const std::string& search, unsigned int resultStart, - unsigned int resultEnd, + unsigned int resultMax, const bool verbose = false); /** @@ -104,12 +104,12 @@ class Searcher * @param longitude The longitude of the center point. * @param distance The radius of the disc. * @param resultStart the start offset of the search results (used for pagination). - * @param resultEnd the end offset of the search results (used for pagination). + * @param resultMax Maximum number of results to get from start (used for pagination). * @param verbose print some info on stdout if true. */ void geo_search(float latitude, float longitude, float distance, unsigned int resultStart, - unsigned int resultEnd, + unsigned int resultMax, const bool verbose = false); /** @@ -148,14 +148,14 @@ class Searcher zim::SearchResultSet getSearchResultSet(); unsigned int getResultStart() { return resultStart; } - unsigned int getResultEnd() { return resultEnd; } + unsigned int getResultMax() { return resultMax; } protected: std::string beautifyInteger(const unsigned int number); void closeIndex(); void searchInIndex(string& search, const unsigned int resultStart, - const unsigned int resultEnd, + const unsigned int resultMax, const bool verbose = false); std::vector readers; @@ -163,7 +163,7 @@ class Searcher std::string searchPattern; unsigned int estimatedResultCount; unsigned int resultStart; - unsigned int resultEnd; + unsigned int resultMax; private: void reset(); diff --git a/src/searcher.cpp b/src/searcher.cpp index 56ffb3d4e..1b0c7c456 100644 --- a/src/searcher.cpp +++ b/src/searcher.cpp @@ -67,7 +67,7 @@ Searcher::Searcher() : searchPattern(""), estimatedResultCount(0), resultStart(0), - resultEnd(0) + resultMax(0) { loadICUExternalTables(); } @@ -95,7 +95,7 @@ Reader* Searcher::get_reader(int readerIndex) /* Search strings in the database */ void Searcher::search(const std::string& search, unsigned int resultStart, - unsigned int resultEnd, + unsigned int resultMax, const bool verbose) { this->reset(); @@ -106,9 +106,9 @@ void Searcher::search(const std::string& search, this->searchPattern = search; this->resultStart = resultStart; - this->resultEnd = resultEnd; + this->resultMax = resultMax; /* Try to find results */ - if (resultStart != resultEnd) { + if (resultMax != 0) { /* Perform the search */ string unaccentedSearch = removeAccents(search); std::vector archives; @@ -123,7 +123,7 @@ void Searcher::search(const std::string& search, query.setQuery(unaccentedSearch, false); query.setVerbose(verbose); zim::Search search = searcher.search(query); - internal.reset(new SearcherInternal(search.getResults(resultStart, resultEnd))); + internal.reset(new SearcherInternal(search.getResults(resultStart, resultMax))); this->estimatedResultCount = search.getEstimatedMatches(); } @@ -133,7 +133,7 @@ void Searcher::search(const std::string& search, void Searcher::geo_search(float latitude, float longitude, float distance, unsigned int resultStart, - unsigned int resultEnd, + unsigned int resultMax, const bool verbose) { this->reset(); @@ -147,10 +147,10 @@ void Searcher::geo_search(float latitude, float longitude, float distance, oss << "Articles located less than " << distance << " meters of " << latitude << ";" << longitude; this->searchPattern = oss.str(); this->resultStart = resultStart; - this->resultEnd = resultEnd; + this->resultMax = resultMax; /* Try to find results */ - if (resultStart == resultEnd) { + if (resultMax == 0) { return; } @@ -165,7 +165,7 @@ void Searcher::geo_search(float latitude, float longitude, float distance, query.setQuery("", false); query.setGeorange(latitude, longitude, distance); zim::Search search = searcher.search(query); - internal.reset(new SearcherInternal(search.getResults(resultStart, resultEnd))); + internal.reset(new SearcherInternal(search.getResults(resultStart, resultMax))); this->estimatedResultCount = search.getEstimatedMatches(); } @@ -206,7 +206,7 @@ void Searcher::suggestions(std::string& searchPattern, const bool verbose) this->searchPattern = searchPattern; this->resultStart = 0; - this->resultEnd = 10; + this->resultMax = 10; string unaccentedSearch = removeAccents(searchPattern); std::vector archives; @@ -219,7 +219,7 @@ void Searcher::suggestions(std::string& searchPattern, const bool verbose) query.setVerbose(verbose); query.setQuery(unaccentedSearch, true); zim::Search search = searcher.search(query); - internal.reset(new SearcherInternal(search.getResults(resultStart, resultEnd))); + internal.reset(new SearcherInternal(search.getResults(resultStart, resultMax))); this->estimatedResultCount = search.getEstimatedMatches(); } diff --git a/src/server/internalServer.cpp b/src/server/internalServer.cpp index 689ba7732..957b128f8 100644 --- a/src/server/internalServer.cpp +++ b/src/server/internalServer.cpp @@ -589,8 +589,6 @@ std::unique_ptr InternalServer::handle_search(const RequestContext& re pageLength = 25; } - auto end = start + pageLength; - /* Get the results */ try { zim::Query query; @@ -615,7 +613,7 @@ std::unique_ptr InternalServer::handle_search(const RequestContext& re } zim::Search search = searcher->search(query); - SearchRenderer renderer(search.getResults(start, end), mp_nameMapper, start, + SearchRenderer renderer(search.getResults(start, pageLength), mp_nameMapper, start, search.getEstimatedMatches()); renderer.setSearchPattern(patternString); renderer.setSearchContent(bookName);