diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2017-03-14 15:37:25 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-14 15:37:25 +0000 |
commit | 512745dd620abd94fffa1b61644b85dcb467e90c (patch) | |
tree | 2602ab192c5651c30a6cb8d54bb4d93bd461b835 /searchlib | |
parent | fb6d9afc9f7328f92369b11b6e85fa6fdf23fdff (diff) | |
parent | 8d30ab013d5786788b38cfd5992f45b765bf13d8 (diff) |
Merge pull request #2002 from yahoo/geirst/prepare-for-extending-iattributevector-api
Geirst/prepare for extending iattributevector api
Diffstat (limited to 'searchlib')
42 files changed, 78 insertions, 209 deletions
diff --git a/searchlib/src/tests/attribute/attributesearcher.h b/searchlib/src/tests/attribute/attributesearcher.h index e6db62ca0e6..0978411c974 100644 --- a/searchlib/src/tests/attribute/attributesearcher.h +++ b/searchlib/src/tests/attribute/attributesearcher.h @@ -131,7 +131,7 @@ AttributeFindSearcher<T>::doRun() AttributeGuard guard(_attrPtr); std::unique_ptr<AttributeVector::SearchContext> searchContext = _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), - AttributeVector::SearchContext::Params()); + attribute::SearchContextParams()); searchContext->fetchPostings(true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(NULL, true); @@ -209,7 +209,7 @@ AttributeRangeSearcher::doRun() AttributeGuard guard(_attrPtr); std::unique_ptr<AttributeVector::SearchContext> searchContext = _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), - AttributeVector::SearchContext::Params()); + attribute::SearchContextParams()); searchContext->fetchPostings(true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(NULL, true); @@ -248,7 +248,7 @@ AttributePrefixSearcher::doRun() AttributeGuard guard(_attrPtr); std::unique_ptr<AttributeVector::SearchContext> searchContext = _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), - AttributeVector::SearchContext::Params()); + attribute::SearchContextParams()); searchContext->fetchPostings(true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(NULL, true); diff --git a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp index 1c2ca360bd8..c082d1788ca 100644 --- a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp +++ b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp @@ -19,18 +19,19 @@ #include <vespa/log/log.h> LOG_SETUP("bitvector_test"); -using search::attribute::BasicType; -using search::attribute::CollectionType; -using search::attribute::Config; using search::AttributeFactory; +using search::AttributeVector; +using search::BitVector; +using search::BitVectorIterator; using search::FloatingPointAttribute; using search::IntegerAttribute; -using search::StringAttribute; -using search::AttributeVector; using search::ParseItem; +using search::StringAttribute; +using search::attribute::BasicType; +using search::attribute::CollectionType; +using search::attribute::Config; +using search::attribute::SearchContextParams; using search::fef::TermFieldMatchData; -using search::BitVector; -using search::BitVectorIterator; using search::queryeval::SearchIterator; typedef std::unique_ptr<AttributeVector::SearchContext> SearchContextPtr; @@ -210,7 +211,7 @@ BitVectorTest::getSearch(const V &vec, const T &term, bool prefix, return (static_cast<const AttributeVector &>(vec)). getSearch(vespalib::stringref(&query[0], query.size()), - AttributeVector::SearchContext::Params().useBitVector(useBitVector)); + SearchContextParams().useBitVector(useBitVector)); } diff --git a/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp b/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp index c57bf0ba87c..58db1d11fec 100644 --- a/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp +++ b/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp @@ -28,20 +28,20 @@ #include <iostream> #include <cmath> - -using search::attribute::BasicType; -using search::attribute::CollectionType; -using search::attribute::Config; using search::AttributeFactory; +using search::AttributeMemoryFileBufferWriter; +using search::BufferWriter; using search::FloatingPointAttribute; +using search::IAttributeFileWriter; using search::IntegerAttribute; -using search::StringAttribute; -using search::RandomGenerator; using search::ParseItem; +using search::RandomGenerator; +using search::StringAttribute; +using search::attribute::BasicType; +using search::attribute::CollectionType; +using search::attribute::Config; +using search::attribute::SearchContextParams; using search::fef::TermFieldMatchData; -using search::IAttributeFileWriter; -using search::BufferWriter; -using search::AttributeMemoryFileBufferWriter; typedef std::unique_ptr<AttributeVector::SearchContext> SearchContextPtr; typedef std::unique_ptr<search::queryeval::SearchIterator> SearchBasePtr; @@ -536,7 +536,7 @@ EnumeratedSaveTest::getSearch(const V &vec, const T &term, bool prefix) return (static_cast<const AttributeVector &>(vec)). getSearch(vespalib::stringref(&query[0], query.size()), - AttributeVector::SearchContext::Params()); + SearchContextParams()); } diff --git a/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp b/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp index b8285066184..92effde5686 100644 --- a/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp +++ b/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp @@ -121,7 +121,7 @@ private: void buildTermQuery(std::vector<char> & buffer, const vespalib::string & index, const vespalib::string & term, bool prefix); template <typename V, typename T> - SearchContextPtr getSearch(const V & vec, const T & term, bool prefix, const AttributeVector::SearchContext::Params & params=AttributeVector::SearchContext::Params()); + SearchContextPtr getSearch(const V & vec, const T & term, bool prefix, const attribute::SearchContextParams & params=attribute::SearchContextParams()); template <typename V> SearchContextPtr getSearch(const V & vec); @@ -327,7 +327,7 @@ PostingListAttributeTest::buildTermQuery(std::vector<char> &buffer, template <typename V, typename T> SearchContextPtr -PostingListAttributeTest::getSearch(const V &vec, const T &term, bool prefix, const AttributeVector::SearchContext::Params & params) +PostingListAttributeTest::getSearch(const V &vec, const T &term, bool prefix, const attribute::SearchContextParams & params) { std::vector<char> query; vespalib::asciistream ss; @@ -477,7 +477,7 @@ template <typename BufferType> void PostingListAttributeTest::checkSearch(bool useBitVector, const AttributeVector & vec, const BufferType & term, uint32_t numHits, uint32_t docBegin, uint32_t docEnd) { - SearchContextPtr sc = getSearch(vec, term, false, AttributeVector::SearchContext::Params().useBitVector(useBitVector)); + SearchContextPtr sc = getSearch(vec, term, false, attribute::SearchContextParams().useBitVector(useBitVector)); EXPECT_FALSE( ! sc ); sc->fetchPostings(true); size_t approx = sc->approximateHits(); diff --git a/searchlib/src/tests/attribute/searchcontext/searchcontext.cpp b/searchlib/src/tests/attribute/searchcontext/searchcontext.cpp index 32da1743343..ae4d8b91387 100644 --- a/searchlib/src/tests/attribute/searchcontext/searchcontext.cpp +++ b/searchlib/src/tests/attribute/searchcontext/searchcontext.cpp @@ -424,7 +424,7 @@ SearchContextTest::getSearch(const V & vec, const T & term, QueryTermSimple::Sea return (dynamic_cast<const AttributeVector &>(vec)). getSearch(vespalib::stringref(&query[0], query.size()), - AttributeVector::SearchContext::Params()); + attribute::SearchContextParams()); } ResultSetPtr diff --git a/searchlib/src/tests/queryeval/queryeval.cpp b/searchlib/src/tests/queryeval/queryeval.cpp index d9212207987..e8eed9e50ff 100644 --- a/searchlib/src/tests/queryeval/queryeval.cpp +++ b/searchlib/src/tests/queryeval/queryeval.cpp @@ -22,11 +22,12 @@ #include <vespa/searchlib/fef/fef.h> using namespace search::queryeval; +using search::BitVector; +using search::BitVectorIterator; +using search::attribute::SearchContextParams; using search::fef::MatchData; using search::fef::TermFieldMatchData; using search::fef::TermFieldMatchDataArray; -using search::BitVector; -using search::BitVectorIterator; using search::test::InitRangeVerifier; //----------------------------------------------------------------------------- @@ -333,7 +334,7 @@ public: } _a.commit(); _sc = _a.getSearch(search::QueryTermSimple::UP(new search::QueryTermSimple("1", search::QueryTermSimple::WORD)), - search::AttributeVector::SearchContext::Params().useBitVector(true)); + SearchContextParams().useBitVector(true)); } virtual SearchIterator::UP createLeafSearch(const TermFieldMatchDataArray &tfmda, bool strict) const diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp index a6c554e01b7..8023270446a 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp @@ -82,7 +82,7 @@ private: AttributeFieldBlueprint(const FieldSpec &field, const AttributeVector &attribute, const string &query_stack, - const AttributeVector::SearchContext::Params ¶ms) + const attribute::SearchContextParams ¶ms) : SimpleLeafBlueprint(field), _search_context(attribute.getSearch(query_stack, params).release()) { @@ -98,7 +98,7 @@ public: : AttributeFieldBlueprint(field, attribute, query_stack, - AttributeVector::SearchContext::Params() + attribute::SearchContextParams() .useBitVector(field.isFilter())) { } @@ -112,7 +112,7 @@ public: : AttributeFieldBlueprint(field, attribute, query_stack, - AttributeVector::SearchContext::Params() + attribute::SearchContextParams() .diversityAttribute(&diversity) .useBitVector(field.isFilter()) .diversityCutoffGroups(diversityCutoffGroups) @@ -174,7 +174,7 @@ public: search::query::Range qr(r.min(), r.max()); search::query::SimpleRangeTerm rt(qr, "", 0, search::query::Weight(0)); string stack(StackDumpCreator::create(rt)); - _rangeSearches.push_back(attr.getSearch(stack, AttributeVector::SearchContext::Params())); + _rangeSearches.push_back(attr.getSearch(stack, attribute::SearchContextParams())); estHits += _rangeSearches.back()->approximateHits(); LOG(debug, "Range '%s' estHits %ld", qr.getRangeString().c_str(), estHits); } @@ -570,7 +570,7 @@ public: } else { qt.reset(new search::QueryTermBase(term, search::QueryTermSimple::WORD)); } - ws->addToken(_attr.getSearch(std::move(qt), AttributeVector::SearchContext::Params()), weight); + ws->addToken(_attr.getSearch(std::move(qt), attribute::SearchContextParams()), weight); } setResult(std::move(result)); } else { diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp index bfdabe8121d..aeccad63cf6 100644 --- a/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attribute_weighted_set_blueprint.cpp @@ -1,7 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "attribute_weighted_set_blueprint.h" -#include "isearchcontext.h" +#include <vespa/searchcommon/attribute/i_search_context.h> #include <vespa/searchlib/queryeval/weighted_set_term_search.h> #include <vespa/searchlib/query/queryterm.h> #include <vespa/searchlib/common/bitvector.h> diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp index 8d4b437e8b5..7a8c44a7a19 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp +++ b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp @@ -28,6 +28,7 @@ using document::ValueUpdate; using vespalib::make_string; using vespalib::Array; using vespalib::IllegalStateException; +using search::attribute::SearchContextParams; using search::common::FileHeaderContext; using search::index::DummyFileHeaderContext; using search::queryeval::SearchIterator; @@ -541,12 +542,7 @@ int32_t AttributeVector::getWeight(DocId, uint32_t) const { return 1; } bool AttributeVector::findEnum(const char *, EnumHandle &) const { return false; } -AttributeVector::SearchContext::Params::Params() : - _diversityAttribute(nullptr), - _diversityCutoffGroups(std::numeric_limits<uint32_t>::max()), - _useBitVector(false), - _diversityCutoffStrict(false) -{ } + AttributeVector::SearchContext::SearchContext(const AttributeVector &attr) : _attr(attr), @@ -554,7 +550,7 @@ AttributeVector::SearchContext::SearchContext(const AttributeVector &attr) : { } AttributeVector::SearchContext::UP -AttributeVector::getSearch(QueryPacketT searchSpec, const SearchContext::Params & params) const +AttributeVector::getSearch(QueryPacketT searchSpec, const SearchContextParams ¶ms) const { return getSearch(SearchContext::decodeQuery(searchSpec), params); } diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.h b/searchlib/src/vespa/searchlib/attribute/attributevector.h index 496b6cdfbf5..f82a66942c1 100644 --- a/searchlib/src/vespa/searchlib/attribute/attributevector.h +++ b/searchlib/src/vespa/searchlib/attribute/attributevector.h @@ -5,16 +5,17 @@ #include "address_space_usage.h" #include "iattributesavetarget.h" #include "changevector.h" -#include "isearchcontext.h" #include <vespa/fastlib/text/normwordfolder.h> #include <vespa/searchcommon/attribute/config.h> +#include <vespa/searchcommon/attribute/i_search_context.h> #include <vespa/searchcommon/attribute/iattributevector.h> +#include <vespa/searchcommon/attribute/search_context_params.h> #include <vespa/searchcommon/attribute/status.h> +#include <vespa/searchcommon/common/range.h> #include <vespa/searchcommon/common/undefinedvalues.h> #include <vespa/searchlib/common/address_space.h> #include <vespa/searchlib/common/i_compactable_lid_space.h> #include <vespa/searchlib/common/identifiable.h> -#include <vespa/searchlib/common/range.h> #include <vespa/searchlib/common/rcuvector.h> #include <vespa/searchlib/queryeval/searchiterator.h> #include <vespa/vespalib/objects/identifiable.h> @@ -520,37 +521,7 @@ public: public: SearchContext(const SearchContext &) = delete; SearchContext & operator = (const SearchContext &) = delete; - class Params { - using IAttributeVector = attribute::IAttributeVector; - public: - Params(); - bool useBitVector() const { return _useBitVector; } - const IAttributeVector * diversityAttribute() const { return _diversityAttribute; } - size_t diversityCutoffGroups() const { return _diversityCutoffGroups; } - bool diversityCutoffStrict() const { return _diversityCutoffStrict; } - - Params & useBitVector(bool value) { - _useBitVector = value; - return *this; - } - Params & diversityAttribute(const IAttributeVector * value) { - _diversityAttribute = value; - return *this; - } - Params & diversityCutoffGroups(size_t groups) { - _diversityCutoffGroups = groups; - return *this; - } - Params & diversityCutoffStrict(bool strict) { - _diversityCutoffStrict = strict; - return *this; - } - private: - const IAttributeVector * _diversityAttribute; - size_t _diversityCutoffGroups; - bool _useBitVector; - bool _diversityCutoffStrict; - }; + typedef std::unique_ptr<SearchContext> UP; ~SearchContext(); unsigned int approximateHits() const override; @@ -614,8 +585,8 @@ public: bool getIsFilter() const { return _attr.getConfig().getIsFilter(); } }; - SearchContext::UP getSearch(QueryPacketT searchSpec, const SearchContext::Params & params) const; - virtual SearchContext::UP getSearch(QueryTermSimpleUP term, const SearchContext::Params & params) const = 0; + SearchContext::UP getSearch(QueryPacketT searchSpec, const attribute::SearchContextParams ¶ms) const; + virtual SearchContext::UP getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams ¶ms) const = 0; virtual const EnumStoreBase *getEnumStoreBase() const; virtual const attribute::MultiValueMappingBase *getMultiValueBase() const; private: diff --git a/searchlib/src/vespa/searchlib/attribute/extendableattributes.h b/searchlib/src/vespa/searchlib/attribute/extendableattributes.h index 114ff0415aa..b98246b174d 100644 --- a/searchlib/src/vespa/searchlib/attribute/extendableattributes.h +++ b/searchlib/src/vespa/searchlib/attribute/extendableattributes.h @@ -40,7 +40,7 @@ class SingleExtAttribute using QueryTermSimpleUP = typename Super::QueryTermSimpleUP; AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override { (void) term; (void) params; @@ -112,7 +112,7 @@ protected: { } private: AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override { (void) term; (void) params; @@ -200,7 +200,7 @@ class WeightedSetIntegerExtAttribute : public WeightedSetExtAttributeBase<MultiIntegerExtAttribute> { AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override { (void) term; (void) params; @@ -216,7 +216,7 @@ class WeightedSetFloatExtAttribute : public WeightedSetExtAttributeBase<MultiFloatExtAttribute> { AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override { (void) term; (void) params; diff --git a/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp b/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp index 95bb9c6508f..bc9ea4b7ebf 100644 --- a/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/flagattribute.cpp @@ -58,7 +58,7 @@ FlagAttributeT<B>::FlagAttributeT(const vespalib::string & baseFileName, const A template <typename B> AttributeVector::SearchContext::UP FlagAttributeT<B>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; return AttributeVector::SearchContext::UP (new SearchContext(std::move(qTerm), *this)); diff --git a/searchlib/src/vespa/searchlib/attribute/flagattribute.h b/searchlib/src/vespa/searchlib/attribute/flagattribute.h index 83f452ab342..43a3647d93f 100644 --- a/searchlib/src/vespa/searchlib/attribute/flagattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/flagattribute.h @@ -32,7 +32,7 @@ private: bool onLoad() override; bool onLoadEnumerated(ReaderBase &attrReader) override; AttributeVector::SearchContext::UP - getSearch(std::unique_ptr<QueryTermSimple> term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(std::unique_ptr<QueryTermSimple> term, const attribute::SearchContextParams & params) const override; void clearOldValues(DocId doc) override; void setNewValues(DocId doc, const std::vector<typename B::WType> & values) override; diff --git a/searchlib/src/vespa/searchlib/attribute/isearchcontext.h b/searchlib/src/vespa/searchlib/attribute/isearchcontext.h deleted file mode 100644 index b59b09050c1..00000000000 --- a/searchlib/src/vespa/searchlib/attribute/isearchcontext.h +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#pragma once - -#include <vespa/searchlib/common/range.h> - -namespace search { - -namespace fef { - class TermFieldMatchData; -} -namespace queryeval { - class SearchIterator; -} - -class QueryTermBase; - -namespace attribute { - - - class ISearchContext { - public: - virtual ~ISearchContext() {} - - virtual unsigned int approximateHits() const = 0; - - /** - * Creates an attribute search iterator associated with this - * search context. - * - * @return attribute search iterator - * - * @param matchData the attribute match data used when - * unpacking data for a hit - * - * @param strict whether the iterator should be strict or not - * - * @param useBitVector whether bitvectors should be used when available - **/ - virtual std::unique_ptr<queryeval::SearchIterator> - createIterator(fef::TermFieldMatchData *matchData, bool strict) = 0; - - /** - * Creates an attribute search iterator associated with this - * search context. Postings lists are not used. - * - * @return attribute search iterator - * - * @param matchData the attribute match data used when - * unpacking data for a hit - * - * @param strict whether the iterator should be strict or not - **/ - virtual std::unique_ptr<queryeval::SearchIterator> - createFilterIterator(fef::TermFieldMatchData *matchData, bool strict) = 0; - - /* - * Create temporary posting lists. Should be called before - * createIterator is called. - */ - virtual void fetchPostings(bool strict) = 0; - virtual bool valid() const = 0; - virtual Int64Range getAsIntegerTerm() const = 0; - - virtual const QueryTermBase & queryTerm() const = 0; - - }; - -} -} diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.h b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.h index a6be38eaf8f..c007e19351a 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.h @@ -174,7 +174,7 @@ public: virtual bool onLoadEnumerated(ReaderBase &attrReader); AttributeVector::SearchContext::UP - getSearch(std::unique_ptr<QueryTermSimple> term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(std::unique_ptr<QueryTermSimple> term, const attribute::SearchContextParams & params) const override; virtual void clearOldValues(DocId doc); virtual void setNewValues(DocId doc, const std::vector<WType> & values); diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp index f287be4db29..5cea78df5b9 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multinumericattribute.hpp @@ -169,7 +169,7 @@ MultiValueNumericAttribute<B, M>::onLoad() template <typename B, typename M> AttributeVector::SearchContext::UP MultiValueNumericAttribute<B, M>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; if (this->hasArrayType()) { diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.h b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.h index 05729283fce..f2f808c0182 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.h @@ -162,7 +162,7 @@ public: bool onLoadEnumerated(ReaderBase &attrReader); AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; //------------------------------------------------------------------------- // Attribute read API diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp index ddd749df279..2942f67193e 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multinumericenumattribute.hpp @@ -125,7 +125,7 @@ MultiValueNumericEnumAttribute<B, M>::onLoad() template <typename B, typename M> AttributeVector::SearchContext::UP MultiValueNumericEnumAttribute<B, M>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; QueryTermSimple::RangeResult<T> res = qTerm->getRange<T>(); diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h index ac182a3aff1..2ee03c6a64b 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h @@ -88,7 +88,7 @@ public: virtual void onGenerationChange(generation_t generation); AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; virtual const IDocumentWeightAttribute *asDocumentWeightAttribute() const override; diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp index 6fd89b084fd..a02df1b6ece 100644 --- a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.hpp @@ -74,7 +74,7 @@ MultiValueNumericPostingAttribute<B, M>::onGenerationChange(generation_t generat template <typename B, typename M> AttributeVector::SearchContext::UP MultiValueNumericPostingAttribute<B, M>::getSearch(QueryTermSimpleUP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { std::unique_ptr<search::AttributeVector::SearchContext> sc; sc.reset(new typename std::conditional<M::_hasWeight, diff --git a/searchlib/src/vespa/searchlib/attribute/multistringattribute.h b/searchlib/src/vespa/searchlib/attribute/multistringattribute.h index bc05b242221..9bfd20e2fc7 100644 --- a/searchlib/src/vespa/searchlib/attribute/multistringattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/multistringattribute.h @@ -159,7 +159,7 @@ public: }; SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; }; diff --git a/searchlib/src/vespa/searchlib/attribute/multistringattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multistringattribute.hpp index a93012566cc..f71489ca150 100644 --- a/searchlib/src/vespa/searchlib/attribute/multistringattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multistringattribute.hpp @@ -39,7 +39,7 @@ MultiValueStringAttributeT<B, M>::freezeEnumDictionary(void) template <typename B, typename M> AttributeVector::SearchContext::UP MultiValueStringAttributeT<B, M>::getSearch(QueryTermSimpleUP qTerm, - const AttributeVector::SearchContext::Params &) const + const attribute::SearchContextParams &) const { if (this->getCollectionType() == attribute::CollectionType::WSET) { return std::make_unique<StringTemplSearchContext<StringSetImplSearchContext>>(std::move(qTerm), *this); diff --git a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h index 7ee356f63b9..8b773ca3545 100644 --- a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h @@ -91,7 +91,7 @@ public: void onGenerationChange(generation_t generation) override; AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; const IDocumentWeightAttribute *asDocumentWeightAttribute() const override; diff --git a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.hpp index 30a0ab73d1f..eb2eb692202 100644 --- a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.hpp @@ -89,7 +89,7 @@ MultiValueStringPostingAttributeT<B, T>::onGenerationChange(generation_t generat template <typename B, typename T> AttributeVector::SearchContext::UP MultiValueStringPostingAttributeT<B, T>::getSearch(QueryTermSimpleUP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { std::unique_ptr<search::AttributeVector::SearchContext> sc; sc.reset(new typename std::conditional<T::_hasWeight, diff --git a/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.cpp b/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.cpp index 4b2782c2b67..43bd1045949 100644 --- a/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.cpp @@ -145,7 +145,7 @@ NotImplementedAttribute::addDoc(DocId &) { } SearchContext::UP -NotImplementedAttribute::getSearch(QueryTermSimpleUP, const SearchContext::Params &) const { +NotImplementedAttribute::getSearch(QueryTermSimpleUP, const attribute::SearchContextParams &) const { notImplemented(); return SearchContext::UP(); } diff --git a/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.h b/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.h index 39ba786325b..a3747bcb954 100644 --- a/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.h +++ b/searchlib/src/vespa/searchlib/attribute/not_implemented_attribute.h @@ -35,7 +35,7 @@ struct NotImplementedAttribute : AttributeVector { bool addDoc(DocId &) override; void onAddDocs(DocId lidLimit) override; - SearchContext::UP getSearch(QueryTermSimpleUP, const SearchContext::Params &) const override; + SearchContext::UP getSearch(QueryTermSimpleUP, const attribute::SearchContextParams &) const override; }; } // namespace search diff --git a/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h b/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h index caf98dc9cad..21267fe1d38 100644 --- a/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h +++ b/searchlib/src/vespa/searchlib/attribute/postinglistsearchcontext.h @@ -228,7 +228,7 @@ private: typedef typename Parent::EnumStore EnumStore; typedef typename EnumStore::ComparatorType ComparatorType; typedef typename AttrT::T BaseType; - typedef typename Parent::Params Params; + using Params = attribute::SearchContextParams; using QueryTermSimpleUP = typename Parent::QueryTermSimpleUP; using Parent::_low; using Parent::_high; diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.h b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.h index 2379fbe1f87..0f984fc9380 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.h @@ -104,7 +104,7 @@ public: bool onLoadEnumerated(ReaderBase &attrReader); AttributeVector::SearchContext::UP - getSearch(std::unique_ptr<QueryTermSimple> term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(std::unique_ptr<QueryTermSimple> term, const attribute::SearchContextParams & params) const override; void set(DocId doc, T v) { _data[doc] = v; diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp index eae1bc93c59..cbd4bfe383f 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericattribute.hpp @@ -155,7 +155,7 @@ SingleValueNumericAttribute<B>::onLoad() template <typename B> AttributeVector::SearchContext::UP SingleValueNumericAttribute<B>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; QueryTermSimple::RangeResult<T> res = qTerm->getRange<T>(); diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.h b/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.h index 416e32268dc..828c1434819 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.h @@ -99,7 +99,7 @@ public: bool onLoadEnumerated(ReaderBase &attrReader); AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; //------------------------------------------------------------------------- // Attribute read API diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.hpp index 556aa6361c7..fbf56440a08 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericenumattribute.hpp @@ -152,7 +152,7 @@ SingleValueNumericEnumAttribute<B>::onLoad() template <typename B> AttributeVector::SearchContext::UP SingleValueNumericEnumAttribute<B>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; QueryTermSimple::RangeResult<T> res = qTerm->getRange<T>(); diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h index 1a210893eec..8053ba51fae 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h @@ -84,7 +84,7 @@ public: void onGenerationChange(generation_t generation) override; AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; bool onAddDoc(DocId doc) override { return forwardedOnAddDoc(doc, this->_enumIndices.size(), this->_enumIndices.capacity()); diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp index ebfdbe9b066..74b571ee645 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.hpp @@ -141,7 +141,7 @@ SingleValueNumericPostingAttribute<B>::onGenerationChange(generation_t generatio template <typename B> AttributeVector::SearchContext::UP SingleValueNumericPostingAttribute<B>::getSearch(QueryTermSimple::UP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { return std::unique_ptr<AttributeVector::SearchContext> (new SinglePostingSearchContext(std::move(qTerm), diff --git a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp index b15cfead9f3..8d75f00c901 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.cpp @@ -168,7 +168,7 @@ SingleValueSmallNumericAttribute::onSave(IAttributeSaveTarget &saveTarget) AttributeVector::SearchContext::UP SingleValueSmallNumericAttribute::getSearch(std::unique_ptr<QueryTermSimple> qTerm, - const SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { (void) params; return SearchContext::UP(new SingleSearchContext(std::move(qTerm), *this)); diff --git a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.h b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.h index 483a82215ee..c91cdac957d 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlesmallnumericattribute.h @@ -125,7 +125,7 @@ public: bool onLoad() override; void onSave(IAttributeSaveTarget &saveTarget) override; - SearchContext::UP getSearch(std::unique_ptr<QueryTermSimple> term, const SearchContext::Params & params) const override; + SearchContext::UP getSearch(std::unique_ptr<QueryTermSimple> term, const attribute::SearchContextParams & params) const override; T getFast(DocId doc) const { const Word &word = _wordData[doc >> _wordShift]; diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringattribute.h b/searchlib/src/vespa/searchlib/attribute/singlestringattribute.h index ab49c7e069d..c034c546254 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlestringattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlestringattribute.h @@ -78,7 +78,7 @@ public: } AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; class StringSingleImplSearchContext : public StringAttribute::StringSearchContext { public: diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlestringattribute.hpp index c97946d382a..4c8587791c4 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlestringattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlestringattribute.hpp @@ -37,7 +37,7 @@ SingleValueStringAttributeT<B>::freezeEnumDictionary(void) { template <typename B> AttributeVector::SearchContext::UP SingleValueStringAttributeT<B>::getSearch(QueryTermSimpleUP qTerm, - const AttributeVector::SearchContext::Params &) const + const attribute::SearchContextParams &) const { return std::unique_ptr<AttributeVector::SearchContext> (new StringTemplSearchContext(std::move(qTerm), *this)); diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h index 10da670d93d..913b5d0f333 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h +++ b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h @@ -92,7 +92,7 @@ public: void onGenerationChange(generation_t generation) override; AttributeVector::SearchContext::UP - getSearch(QueryTermSimpleUP term, const AttributeVector::SearchContext::Params & params) const override; + getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; virtual bool onAddDoc(DocId doc) { return forwardedOnAddDoc(doc, this->_enumIndices.size(), this->_enumIndices.capacity()); diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp index 2069748e52e..894bf711242 100644 --- a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp +++ b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.hpp @@ -137,7 +137,7 @@ SingleValueStringPostingAttributeT<B>::onGenerationChange(generation_t generatio template <typename B> AttributeVector::SearchContext::UP SingleValueStringPostingAttributeT<B>::getSearch(QueryTermSimpleUP qTerm, - const AttributeVector::SearchContext::Params & params) const + const attribute::SearchContextParams & params) const { return std::unique_ptr<search::AttributeVector::SearchContext> (new StringSinglePostingSearchContext(std::move(qTerm), diff --git a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp index 8dd2a0dec4f..77f111c2eb4 100644 --- a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp +++ b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp @@ -20,7 +20,7 @@ using attribute::LoadedEnumAttributeVector; using vespalib::Regexp; AttributeVector::SearchContext::UP -StringAttribute::getSearch(QueryTermSimple::UP term, const SearchContext::Params & params) const +StringAttribute::getSearch(QueryTermSimple::UP term, const attribute::SearchContextParams & params) const { (void) params; return SearchContext::UP(new StringSearchContext(std::move(term), *this)); diff --git a/searchlib/src/vespa/searchlib/attribute/stringbase.h b/searchlib/src/vespa/searchlib/attribute/stringbase.h index cc83d2f0d1b..ea095341578 100644 --- a/searchlib/src/vespa/searchlib/attribute/stringbase.h +++ b/searchlib/src/vespa/searchlib/attribute/stringbase.h @@ -176,7 +176,7 @@ private: mutable WeightedConstChar * _buffer; std::unique_ptr<vespalib::Regexp> _regex; }; - SearchContext::UP getSearch(QueryTermSimpleUP term, const SearchContext::Params & params) const override; + SearchContext::UP getSearch(QueryTermSimpleUP term, const attribute::SearchContextParams & params) const override; }; } diff --git a/searchlib/src/vespa/searchlib/common/range.h b/searchlib/src/vespa/searchlib/common/range.h deleted file mode 100644 index f33630daaf4..00000000000 --- a/searchlib/src/vespa/searchlib/common/range.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -// Copyright (C) 1998-2003 Fast Search & Transfer ASA -// Copyright (C) 2003 Overture Services Norway AS - -#pragma once - -namespace search -{ - -template <typename T> -class Range { -public: - Range() : - _lower(std::numeric_limits<T>::max()), - _upper(std::numeric_limits<T>::min()) { } - Range(T v) : _lower(v), _upper(v) { } - Range(T low, T high) : _lower(low), _upper(high) { } - T lower() const { return _lower; } - T upper() const { return _upper; } - bool valid() const { return _lower <= _upper; } - bool isPoint() const { return _lower == _upper; } -private: - T _lower; - T _upper; -}; - -using Int64Range = Range<int64_t>; - -} // namespace search - |