diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-04-01 16:56:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-01 16:56:53 +0200 |
commit | 9fbec96922b71e136ffe47e44c0c2b0a8f81c5e4 (patch) | |
tree | 58e2dca1ee0788908988b1cd44086be6d3e89e8d | |
parent | 1af9617f721180be23c855a26c1504968e1a5a18 (diff) | |
parent | 28b12d4a644f5d19f3d9a158b1f7a45276636fb6 (diff) |
Merge pull request #21939 from vespa-engine/toregge/move-create-filter-iterator-member-function
Move createFilterIterator member function to MultiEnumSearchContext.
4 files changed, 22 insertions, 22 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.h b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.h index 3426e2ca0f1..683621eb726 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.h @@ -56,6 +56,9 @@ public: } return -1; } + + std::unique_ptr<queryeval::SearchIterator> + createFilterIterator(fef::TermFieldMatchData* matchData, bool strict) override; }; } diff --git a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.hpp b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.hpp index ce03f06472c..b0069af3c89 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.hpp @@ -3,6 +3,8 @@ #pragma once #include "multi_enum_search_context.h" +#include "attributeiterators.hpp" +#include <vespa/searchlib/queryeval/emptysearch.h> namespace search::attribute { @@ -15,4 +17,21 @@ MultiEnumSearchContext<T, Matcher, M>::MultiEnumSearchContext(Matcher&& matcher, { } +template <typename T, typename Matcher, typename M> +std::unique_ptr<queryeval::SearchIterator> +MultiEnumSearchContext<T, Matcher, M>::createFilterIterator(fef::TermFieldMatchData* matchData, bool strict) +{ + if (!this->valid()) { + return std::make_unique<queryeval::EmptySearch>(); + } + if (this->getIsFilter()) { + return strict + ? std::make_unique<FilterAttributeIteratorStrict<MultiEnumSearchContext>>(*this, matchData) + : std::make_unique<FilterAttributeIteratorT<MultiEnumSearchContext>>(*this, matchData); + } + return strict + ? std::make_unique<AttributeIteratorStrict<MultiEnumSearchContext>>(*this, matchData) + : std::make_unique<AttributeIteratorT<MultiEnumSearchContext>>(*this, matchData); +} + } diff --git a/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.h b/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.h index 7b0bc9de9d8..d0153a05f15 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.h @@ -18,9 +18,6 @@ public: MultiNumericEnumSearchContext(std::unique_ptr<QueryTermSimple> qTerm, const AttributeVector& toBeSearched, const MultiValueMapping<M>& mv_mapping, const EnumStoreT<T>& enum_store); Int64Range getAsIntegerTerm() const override; - - std::unique_ptr<queryeval::SearchIterator> - createFilterIterator(fef::TermFieldMatchData* matchData, bool strict) override; }; } diff --git a/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.hpp b/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.hpp index 2f9e698aaae..7b8e193379c 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.hpp @@ -4,8 +4,6 @@ #include "multi_numeric_enum_search_context.h" #include "multi_enum_search_context.hpp" -#include "attributeiterators.hpp" -#include <vespa/searchlib/queryeval/emptysearch.h> namespace search::attribute { @@ -22,21 +20,4 @@ MultiNumericEnumSearchContext<T, M>::getAsIntegerTerm() const return this->getRange(); } -template <typename T, typename M> -std::unique_ptr<queryeval::SearchIterator> -MultiNumericEnumSearchContext<T, M>::createFilterIterator(fef::TermFieldMatchData* matchData, bool strict) -{ - if (!this->valid()) { - return std::make_unique<queryeval::EmptySearch>(); - } - if (this->getIsFilter()) { - return strict - ? std::make_unique<FilterAttributeIteratorStrict<MultiNumericEnumSearchContext>>(*this, matchData) - : std::make_unique<FilterAttributeIteratorT<MultiNumericEnumSearchContext>>(*this, matchData); - } - return strict - ? std::make_unique<AttributeIteratorStrict<MultiNumericEnumSearchContext>>(*this, matchData) - : std::make_unique<AttributeIteratorT<MultiNumericEnumSearchContext>>(*this, matchData); -} - } |