diff options
author | Lester Solbakken <lesters@oath.com> | 2018-09-05 14:36:22 +0200 |
---|---|---|
committer | Lester Solbakken <lesters@oath.com> | 2018-09-05 14:58:53 +0200 |
commit | ae9d491d6da4200231b12df1670355070866ec75 (patch) | |
tree | 15e3f639fe1091ad5b85d82bfd831c3ee7216bde /searchcore | |
parent | 015a58b6ac87d84fc47a5e6ca563fdc64c7caf79 (diff) |
Add query override of rerank-count
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp | 5 | ||||
-rw-r--r-- | searchcore/src/vespa/searchcore/proton/matching/matcher.cpp | 7 |
2 files changed, 8 insertions, 4 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp b/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp index a00a90d7a10..4c04c23b35b 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/match_tools.cpp @@ -214,8 +214,9 @@ MatchToolsFactory::createDiversifier() const LOG(warning, "Skipping diversity due to no %s attribute.", _diversityParams.attribute.c_str()); return std::unique_ptr<IDiversifier>(); } - size_t max_per_group = _rankSetup.getHeapSize()/_diversityParams.min_groups; - return DiversityFilter::create(*attr, _rankSetup.getHeapSize(), max_per_group, _diversityParams.min_groups, + uint32_t heapSize = hitcollector::HeapSize::lookup(_queryEnv.getProperties(), _rankSetup.getHeapSize()); + size_t max_per_group = heapSize/_diversityParams.min_groups; + return DiversityFilter::create(*attr, heapSize, max_per_group, _diversityParams.min_groups, _diversityParams.cutoff_strategy == DiversityParams::CutoffStrategy::STRICT); } diff --git a/searchcore/src/vespa/searchcore/proton/matching/matcher.cpp b/searchcore/src/vespa/searchcore/proton/matching/matcher.cpp index be0a720f1c1..94159d0bf2a 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/matcher.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/matcher.cpp @@ -19,6 +19,7 @@ LOG_SETUP(".proton.matching.matcher"); using search::fef::Properties; +using namespace search::fef::indexproperties; using namespace search::fef::indexproperties::matching; using namespace search::engine; using namespace search::grouping; @@ -242,14 +243,16 @@ Matcher::match(const SearchRequest &request, vespalib::ThreadBundle &threadBundl return reply; } - MatchParams params(searchContext.getDocIdLimit(), _rankSetup->getHeapSize(), _rankSetup->getArraySize(), + const Properties & rankProperties = request.propertiesMap.rankProperties(); + uint32_t heapSize = hitcollector::HeapSize::lookup(rankProperties, _rankSetup->getHeapSize()); + + MatchParams params(searchContext.getDocIdLimit(), heapSize, _rankSetup->getArraySize(), _rankSetup->getRankScoreDropLimit(), request.offset, request.maxhits, !_rankSetup->getSecondPhaseRank().empty(), !willNotNeedRanking(request, groupingContext)); ResultProcessor rp(attrContext, metaStore, sessionMgr, groupingContext, sessionId, request.sortSpec, params.offset, params.hits, request.should_drop_sort_data()); - const Properties & rankProperties = request.propertiesMap.rankProperties(); size_t numThreadsPerSearch = computeNumThreadsPerSearch(mtf->estimate(), rankProperties); LimitedThreadBundleWrapper limitedThreadBundle(threadBundle, numThreadsPerSearch); MatchMaster master; |