// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include "multi_numeric_search_context.h" #include "attributeiterators.hpp" #include "multi_value_mapping.h" #include namespace search::attribute { template MultiNumericSearchContext::MultiNumericSearchContext(std::unique_ptr qTerm, const AttributeVector& toBeSearched, MultiValueMappingReadView mv_mapping_read_view) : NumericSearchContext>(toBeSearched, *qTerm, false), _mv_mapping_read_view(mv_mapping_read_view) { } template std::unique_ptr MultiNumericSearchContext::createFilterIterator(fef::TermFieldMatchData* matchData, bool strict) { if (!this->valid()) { return std::make_unique(); } if (this->getIsFilter()) { return strict ? std::make_unique>>(*this, matchData) : std::make_unique>>(*this, matchData); } return strict ? std::make_unique>>(*this, matchData) : std::make_unique>>(*this, matchData); } template uint32_t MultiNumericSearchContext::get_committed_docid_limit() const noexcept { return _mv_mapping_read_view.get_committed_docid_limit(); } }