diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-12 13:14:55 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-12 13:14:55 +0000 |
commit | 488788225bc14663e183d6246dfa5a0338770b55 (patch) | |
tree | 69eb1ac72b0e16ef0f8a40acddf2af5623a7451d /searchlib/src | |
parent | 9512873b312a5348e29662c1bcd0e07a385c44e1 (diff) |
Consider the execute instructions comming in the rankprofiles config too.
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/tests/ranksetup/ranksetup_test.cpp | 13 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/fef/ranksetup.cpp | 11 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/fef/ranksetup.h | 20 |
3 files changed, 41 insertions, 3 deletions
diff --git a/searchlib/src/tests/ranksetup/ranksetup_test.cpp b/searchlib/src/tests/ranksetup/ranksetup_test.cpp index 3d2b5a620de..783405b8255 100644 --- a/searchlib/src/tests/ranksetup/ranksetup_test.cpp +++ b/searchlib/src/tests/ranksetup/ranksetup_test.cpp @@ -522,6 +522,12 @@ void RankSetupTest::testRankSetup() env.getProperties().add(hitcollector::EstimatePoint::NAME, "70"); env.getProperties().add(hitcollector::EstimateLimit::NAME, "80"); env.getProperties().add(hitcollector::RankScoreDropLimit::NAME, "90.5"); + env.getProperties().add(execute::onmatch::Attribute::NAME, "a"); + env.getProperties().add(execute::onmatch::Operation::NAME, "++"); + env.getProperties().add(execute::onrerank::Attribute::NAME, "b"); + env.getProperties().add(execute::onrerank::Operation::NAME, "=7"); + env.getProperties().add(execute::onsummary::Attribute::NAME, "c"); + env.getProperties().add(execute::onsummary::Operation::NAME, "--"); RankSetup rs(_factory, env); rs.configure(); @@ -547,6 +553,13 @@ void RankSetupTest::testRankSetup() EXPECT_EQUAL(rs.getEstimatePoint(), 70u); EXPECT_EQUAL(rs.getEstimateLimit(), 80u); EXPECT_EQUAL(rs.getRankScoreDropLimit(), 90.5); + EXPECT_EQUAL(rs.getExecuteOnMatch()._attribute, "a"); + EXPECT_EQUAL(rs.getExecuteOnMatch()._operation, "++"); + EXPECT_EQUAL(rs.getExecuteOnReRank()._attribute, "b"); + EXPECT_EQUAL(rs.getExecuteOnReRank()._operation, "=7"); + EXPECT_EQUAL(rs.getExecuteOnSummary()._attribute, "c"); + EXPECT_EQUAL(rs.getExecuteOnSummary()._operation, "--"); + } bool diff --git a/searchlib/src/vespa/searchlib/fef/ranksetup.cpp b/searchlib/src/vespa/searchlib/fef/ranksetup.cpp index 18d90f20bd1..19a5a237c7e 100644 --- a/searchlib/src/vespa/searchlib/fef/ranksetup.cpp +++ b/searchlib/src/vespa/searchlib/fef/ranksetup.cpp @@ -64,7 +64,10 @@ RankSetup::RankSetup(const BlueprintFactory &factory, const IIndexEnvironment &i _softTimeoutFactor(0.5), _nearest_neighbor_brute_force_limit(0.05), _global_filter_lower_limit(0.0), - _global_filter_upper_limit(1.0) + _global_filter_upper_limit(1.0), + _executeOnMatch(), + _executeOnReRank(), + _executeOnSummary() { } RankSetup::~RankSetup() = default; @@ -110,6 +113,12 @@ RankSetup::configure() set_nearest_neighbor_brute_force_limit(matching::NearestNeighborBruteForceLimit::lookup(_indexEnv.getProperties())); set_global_filter_lower_limit(matching::GlobalFilterLowerLimit::lookup(_indexEnv.getProperties())); set_global_filter_upper_limit(matching::GlobalFilterUpperLimit::lookup(_indexEnv.getProperties())); + _executeOnMatch._attribute = execute::onmatch::Attribute::lookup(_indexEnv.getProperties()); + _executeOnMatch._operation = execute::onmatch::Operation::lookup(_indexEnv.getProperties()); + _executeOnReRank._attribute = execute::onrerank::Attribute::lookup(_indexEnv.getProperties()); + _executeOnReRank._operation = execute::onrerank::Operation::lookup(_indexEnv.getProperties()); + _executeOnSummary._attribute = execute::onsummary::Attribute::lookup(_indexEnv.getProperties()); + _executeOnSummary._operation = execute::onsummary::Operation::lookup(_indexEnv.getProperties()); } void diff --git a/searchlib/src/vespa/searchlib/fef/ranksetup.h b/searchlib/src/vespa/searchlib/fef/ranksetup.h index 75b80f35abe..fb6d92f4bac 100644 --- a/searchlib/src/vespa/searchlib/fef/ranksetup.h +++ b/searchlib/src/vespa/searchlib/fef/ranksetup.h @@ -21,6 +21,17 @@ namespace search::fef { **/ class RankSetup { +public: + struct ExecuteOperation { + public: + ExecuteOperation() : ExecuteOperation("", "") {} + ExecuteOperation(vespalib::stringref attribute, vespalib::stringref operation) + : _attribute(attribute), + _operation(operation) + {} + vespalib::string _attribute; + vespalib::string _operation; + }; private: const BlueprintFactory &_factory; const IIndexEnvironment &_indexEnv; @@ -62,8 +73,9 @@ private: double _nearest_neighbor_brute_force_limit; double _global_filter_lower_limit; double _global_filter_upper_limit; - - + ExecuteOperation _executeOnMatch; + ExecuteOperation _executeOnReRank; + ExecuteOperation _executeOnSummary; public: RankSetup(const RankSetup &) = delete; RankSetup &operator=(const RankSetup &) = delete; @@ -419,6 +431,10 @@ public: * @param queryEnv The query environment. */ void prepareSharedState(const IQueryEnvironment & queryEnv, IObjectStore & objectStore) const; + + const ExecuteOperation & getExecuteOnMatch() const { return _executeOnMatch; } + const ExecuteOperation & getExecuteOnReRank() const { return _executeOnReRank; } + const ExecuteOperation & getExecuteOnSummary() const { return _executeOnSummary; } }; } |