diff options
author | Håvard Pettersen <havardpe@oath.com> | 2017-09-07 12:26:22 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2017-09-20 09:16:17 +0000 |
commit | 07145ad5ee9cc0f6d1bef0c76fd93a1053d9dde2 (patch) | |
tree | 8d3a391aef94fd7d8010820fb7f4f7947f97b660 /searchlib/src/tests/features/raw_score/raw_score_test.cpp | |
parent | f1018cb802aeb7b7731a0fc29ee7c708b665148d (diff) |
enable re-using termwise bitvectors in second phase
detach match data from rank program and refactor match loop
re-use bitvector in termwise search if range is the same
Diffstat (limited to 'searchlib/src/tests/features/raw_score/raw_score_test.cpp')
-rw-r--r-- | searchlib/src/tests/features/raw_score/raw_score_test.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/searchlib/src/tests/features/raw_score/raw_score_test.cpp b/searchlib/src/tests/features/raw_score/raw_score_test.cpp index 52587c0d8f9..4aad6c6896e 100644 --- a/searchlib/src/tests/features/raw_score/raw_score_test.cpp +++ b/searchlib/src/tests/features/raw_score/raw_score_test.cpp @@ -45,13 +45,14 @@ struct FeatureDumpFixture : public IDumpFeatureVisitor { struct RankFixture : BlueprintFactoryFixture, IndexFixture { QueryEnvironment queryEnv; RankSetup rankSetup; - RankProgram::UP rankProgram; MatchDataLayout mdl; + MatchData::UP match_data; + RankProgram::UP rankProgram; std::vector<TermFieldHandle> fooHandles; std::vector<TermFieldHandle> barHandles; RankFixture(size_t fooCnt, size_t barCnt) : queryEnv(&indexEnv), rankSetup(factory, indexEnv), - rankProgram(), mdl(), fooHandles(), barHandles() + mdl(), match_data(), rankProgram(), fooHandles(), barHandles() { for (size_t i = 0; i < fooCnt; ++i) { uint32_t fieldId = indexEnv.getFieldByName("foo")->id(); @@ -70,14 +71,15 @@ struct RankFixture : BlueprintFactoryFixture, IndexFixture { rankSetup.setFirstPhaseRank(featureName); rankSetup.setIgnoreDefaultRankFeatures(true); ASSERT_TRUE(rankSetup.compile()); + match_data = mdl.createMatchData(); rankProgram = rankSetup.create_first_phase_program(); - rankProgram->setup(mdl, queryEnv); + rankProgram->setup(*match_data, queryEnv); } feature_t getScore(uint32_t docId) { return Utils::getScoreFeature(*rankProgram, docId); } void setScore(TermFieldHandle handle, uint32_t docId, feature_t score) { - rankProgram->match_data().resolveTermField(handle)->setRawScore(docId, score); + match_data->resolveTermField(handle)->setRawScore(docId, score); } void setFooScore(uint32_t i, uint32_t docId, feature_t score) { ASSERT_LESS(i, fooHandles.size()); |