diff options
author | Tor Egge <Tor.Egge@yahooinc.com> | 2022-04-01 13:59:41 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahooinc.com> | 2022-04-01 13:59:41 +0200 |
commit | 28b12d4a644f5d19f3d9a158b1f7a45276636fb6 (patch) | |
tree | 854f165553dba9806e840073944d336e399accda /searchlib/src | |
parent | f51a32337039c30da84826892d3cea2c306b8368 (diff) |
Move createFilterIterator member function to MultiEnumSearchContext.
Diffstat (limited to 'searchlib/src')
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); -} - } |