summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-04-01 16:56:53 +0200
committerGitHub <noreply@github.com>2022-04-01 16:56:53 +0200
commit9fbec96922b71e136ffe47e44c0c2b0a8f81c5e4 (patch)
tree58e2dca1ee0788908988b1cd44086be6d3e89e8d
parent1af9617f721180be23c855a26c1504968e1a5a18 (diff)
parent28b12d4a644f5d19f3d9a158b1f7a45276636fb6 (diff)
Merge pull request #21939 from vespa-engine/toregge/move-create-filter-iterator-member-function
Move createFilterIterator member function to MultiEnumSearchContext.
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_enum_search_context.hpp19
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.h3
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multi_numeric_enum_search_context.hpp19
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);
-}
-
}