diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-05-18 13:45:43 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-05-18 13:45:43 +0200 |
commit | 945ed21906f8875736dfa547a11e8a124e1d0ef6 (patch) | |
tree | be9eb47c1b0d3f55d376ee7129eab3332923606b /searchlib | |
parent | a4dbfc43c7df534ee5b032204ef19a7b038d7e3e (diff) |
Read committed doc id limit before getting reader bitvector from
growable bitvector.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp b/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp index 46fd47014d3..b0765680f78 100644 --- a/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp +++ b/searchlib/src/vespa/searchlib/attribute/singleboolattribute.cpp @@ -104,6 +104,7 @@ namespace { class BitVectorSearchContext : public attribute::SearchContext, public attribute::IPostingListSearchContext { private: + uint32_t _doc_id_limit; const BitVector & _bv; bool _invert; bool _valid; @@ -122,7 +123,7 @@ private: } public: - BitVectorSearchContext(std::unique_ptr<QueryTermSimple> qTerm, const SingleBoolAttribute & bv); + BitVectorSearchContext(std::unique_ptr<QueryTermSimple> qTerm, const SingleBoolAttribute & attr); std::unique_ptr<queryeval::SearchIterator> createFilterIterator(fef::TermFieldMatchData * matchData, bool strict) override; @@ -133,6 +134,7 @@ public: BitVectorSearchContext::BitVectorSearchContext(std::unique_ptr<QueryTermSimple> qTerm, const SingleBoolAttribute & attr) : SearchContext(attr), + _doc_id_limit(attr.getCommittedDocIdLimit()), _bv(attr.getBitVector()), _invert(false), _valid(qTerm->isValid()) @@ -152,7 +154,7 @@ BitVectorSearchContext::createFilterIterator(fef::TermFieldMatchData * matchData if (!valid()) { return std::make_unique<queryeval::EmptySearch>(); } - return BitVectorIterator::create(&_bv, _attr.getCommittedDocIdLimit(), *matchData, strict, _invert); + return BitVectorIterator::create(&_bv, _doc_id_limit, *matchData, strict, _invert); } void |