diff options
author | Håvard Pettersen <havardpe@yahooinc.com> | 2024-03-14 12:40:34 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@yahooinc.com> | 2024-03-20 12:59:59 +0000 |
commit | 97da6db442eb0385571f834c75a8d65bd239c620 (patch) | |
tree | b78347b8987ad09d7340b42ffdbe445438daf020 /searchlib/src/tests/attribute | |
parent | 7938460dd3b3d72ec1900febe29c1a94db964648 (diff) |
tag blueprints with strictness
The strict-aware sort function is responsible for propagating and
tagging strictness throughout the blueprint tree. Use pre-tagged
strictness in fetchPostings, createSearch and createFilterSearch.
Diffstat (limited to 'searchlib/src/tests/attribute')
10 files changed, 53 insertions, 50 deletions
diff --git a/searchlib/src/tests/attribute/benchmark/attributesearcher.h b/searchlib/src/tests/attribute/benchmark/attributesearcher.h index a383b22e22f..6b8ccc5de59 100644 --- a/searchlib/src/tests/attribute/benchmark/attributesearcher.h +++ b/searchlib/src/tests/attribute/benchmark/attributesearcher.h @@ -140,7 +140,7 @@ AttributeFindSearcher<T>::doRun() _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), attribute::SearchContextParams()); - searchContext->fetchPostings(queryeval::ExecuteInfo::TRUE); + searchContext->fetchPostings(queryeval::ExecuteInfo::FULL, true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(nullptr, true); std::unique_ptr<ResultSet> results = performSearch(*iterator, _attrPtr->getNumDocs()); @@ -218,7 +218,7 @@ AttributeRangeSearcher::doRun() _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), attribute::SearchContextParams()); - searchContext->fetchPostings(queryeval::ExecuteInfo::TRUE); + searchContext->fetchPostings(queryeval::ExecuteInfo::FULL, true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(nullptr, true); std::unique_ptr<ResultSet> results = performSearch(*iterator, _attrPtr->getNumDocs()); @@ -257,7 +257,7 @@ AttributePrefixSearcher::doRun() _attrPtr->getSearch(vespalib::stringref(&_query[0], _query.size()), attribute::SearchContextParams()); - searchContext->fetchPostings(queryeval::ExecuteInfo::TRUE); + searchContext->fetchPostings(queryeval::ExecuteInfo::FULL, true); std::unique_ptr<queryeval::SearchIterator> iterator = searchContext->createIterator(nullptr, true); std::unique_ptr<ResultSet> results = performSearch(*iterator, _attrPtr->getNumDocs()); diff --git a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp index f9e6340560f..0e7308d0ede 100644 --- a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp +++ b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp @@ -426,7 +426,7 @@ BitVectorTest::checkSearch(AttributePtr v, bool checkStride) { TermFieldMatchData md; - sc->fetchPostings(search::queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(search::queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); checkSearch(std::move(v), std::move(sb), md, expFirstDocId, expLastDocId, expDocFreq, weights, diff --git a/searchlib/src/tests/attribute/direct_multi_term_blueprint/direct_multi_term_blueprint_test.cpp b/searchlib/src/tests/attribute/direct_multi_term_blueprint/direct_multi_term_blueprint_test.cpp index 87b771af8e6..1d66c59d2c9 100644 --- a/searchlib/src/tests/attribute/direct_multi_term_blueprint/direct_multi_term_blueprint_test.cpp +++ b/searchlib/src/tests/attribute/direct_multi_term_blueprint/direct_multi_term_blueprint_test.cpp @@ -222,7 +222,6 @@ public: } else { validate_posting_lists<StringKey>(*store); } - blueprint->setDocIdLimit(doc_id_limit); if (need_term_field_match_data) { tfmd.needs_normal_features(); } else { @@ -263,8 +262,9 @@ public: add_term(value); } } - std::unique_ptr<SearchIterator> create_leaf_search(bool strict = true) const { - return blueprint->createLeafSearch(tfmda, strict); + std::unique_ptr<SearchIterator> create_leaf_search(bool strict = true) { + blueprint->basic_plan(strict, doc_id_limit); + return blueprint->createLeafSearch(tfmda); } vespalib::string resolve_iterator_with_unpack() const { if (in_operator) { diff --git a/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp b/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp index df58e839180..0795d85e4a2 100644 --- a/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp +++ b/searchlib/src/tests/attribute/enumeratedsave/enumeratedsave_test.cpp @@ -665,7 +665,7 @@ EnumeratedSaveTest::testReload(AttributePtr v0, TermFieldMatchData md; SearchContextPtr sc = getSearch<VectorType>(as<VectorType>(v)); - sc->fetchPostings(search::queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(search::queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); sb->initFullRange(); sb->seek(1u); diff --git a/searchlib/src/tests/attribute/imported_search_context/imported_search_context_test.cpp b/searchlib/src/tests/attribute/imported_search_context/imported_search_context_test.cpp index 93ae9cb13cb..41ec377dece 100644 --- a/searchlib/src/tests/attribute/imported_search_context/imported_search_context_test.cpp +++ b/searchlib/src/tests/attribute/imported_search_context/imported_search_context_test.cpp @@ -271,7 +271,7 @@ TEST_F("Non-strict iterator unpacks target match data for weighted set hit", Wse TEST_F("Strict iterator is marked as strict", Fixture) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -280,7 +280,7 @@ TEST_F("Strict iterator is marked as strict", Fixture) { TEST_F("Non-strict blueprint with high hit rate is strict", Fixture(false, FastSearchConfig::ExplicitlyEnabled)) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::createForTest(false, 0.02)); + ctx->fetchPostings(queryeval::ExecuteInfo::createForTest(0.02), false); TermFieldMatchData match; auto iter = f.create_iterator(*ctx, match, false); @@ -289,7 +289,7 @@ TEST_F("Non-strict blueprint with high hit rate is strict", Fixture(false, FastS TEST_F("Non-strict blueprint with low hit rate is non-strict", Fixture(false, FastSearchConfig::ExplicitlyEnabled)) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::createForTest(false, 0.01)); + ctx->fetchPostings(queryeval::ExecuteInfo::createForTest(0.01), false); TermFieldMatchData match; auto iter = f.create_iterator(*ctx, match, false); @@ -314,7 +314,7 @@ SingleValueFixture::~SingleValueFixture() = default; TEST_F("Strict iterator seeks to first available hit LID", SingleValueFixture) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -340,7 +340,7 @@ TEST_F("Strict iterator seeks to first available hit LID", SingleValueFixture) { TEST_F("Strict iterator unpacks target match data for single value hit", SingleValueFixture) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -352,7 +352,7 @@ TEST_F("Strict iterator unpacks target match data for single value hit", SingleV TEST_F("Strict iterator unpacks target match data for array hit", ArrayValueFixture) { auto ctx = f.create_context(word_term("1234")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -364,7 +364,7 @@ TEST_F("Strict iterator unpacks target match data for array hit", ArrayValueFixt TEST_F("Strict iterator unpacks target match data for weighted set hit", WsetValueFixture) { auto ctx = f.create_context(word_term("foo")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -375,7 +375,7 @@ TEST_F("Strict iterator unpacks target match data for weighted set hit", WsetVal TEST_F("Strict iterator handles seek outside of LID space", ArrayValueFixture) { auto ctx = f.create_context(word_term("1234")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); @@ -407,7 +407,7 @@ TEST_F("matches(weight) performs GID mapping and forwards to target attribute", TEST_F("Multiple iterators can be created from the same context", SingleValueFixture) { auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match1; auto iter1 = f.create_strict_iterator(*ctx, match1); @@ -490,7 +490,7 @@ TEST_F("Bit vector from search cache is used if found", SearchCacheFixture) f.imported_attr->getSearchCache()->insert("5678", makeSearchCacheEntry({2, 6}, f.get_imported_attr()->getNumDocs())); auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); TEST_DO(f.assertSearch({2, 6}, *iter)); // Note: would be {3, 5} if cache was not used @@ -509,7 +509,7 @@ TEST_F("Entry is inserted into search cache if bit vector posting list is used", { EXPECT_EQUAL(0u, f.imported_attr->getSearchCache()->size()); auto ctx = f.create_context(word_term("5678")); - ctx->fetchPostings(queryeval::ExecuteInfo::TRUE); + ctx->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData match; auto iter = f.create_strict_iterator(*ctx, match); TEST_DO(f.assertSearch({3, 5}, *iter)); diff --git a/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp b/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp index ed91cefd35c..8da9b4466d7 100644 --- a/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp +++ b/searchlib/src/tests/attribute/postinglistattribute/postinglistattribute_test.cpp @@ -378,7 +378,7 @@ PostingListAttributeTest::assertSearch(const std::string &exp, StringAttribute & { TermFieldMatchData md; SearchContextPtr sc = getSearch<StringAttribute>(sa); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); bool retval = true; EXPECT_TRUE(assertIterator(exp, *sb)) << (retval = false, ""); @@ -391,7 +391,7 @@ PostingListAttributeTest::assertSearch(const std::string &exp, StringAttribute & { TermFieldMatchData md; SearchContextPtr sc = getSearch<StringAttribute, std::string>(sa, key, false); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); bool retval = true; EXPECT_TRUE(assertIterator(exp, *sb, &md)) << (retval = false, ""); @@ -403,7 +403,7 @@ PostingListAttributeTest::assertSearch(const std::string &exp, IntegerAttribute { TermFieldMatchData md; SearchContextPtr sc = getSearch<IntegerAttribute, int32_t>(ia, key, false); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); bool retval = true; EXPECT_TRUE(assertIterator(exp, *sb, &md)) << (retval = false, ""); @@ -497,7 +497,7 @@ PostingListAttributeTest::checkSearch(bool useBitVector, bool need_unpack, bool { SearchContextPtr sc = getSearch(vec, term, false, attribute::SearchContextParams().useBitVector(useBitVector)); EXPECT_FALSE( ! sc ); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); auto est = sc->calc_hit_estimate(); uint32_t est_hits = est.est_hits(); EXPECT_FALSE(est.is_unknown()); @@ -912,7 +912,7 @@ PostingListAttributeTest::testMinMax(AttributePtr &ptr1, uint32_t trimmed) { TermFieldMatchData md; SearchContextPtr sc = getSearch<VectorType>(as<VectorType>(ptr1)); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = sc->createIterator(&md, true); sb->initFullRange(); @@ -937,7 +937,7 @@ PostingListAttributeTest::testMinMax(AttributePtr &ptr1, uint32_t trimmed) EXPECT_EQ(1u, sb->getDocId()); sc = getSearch2<VectorType>(as<VectorType>(ptr1)); - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); sb = sc->createIterator(&md, true); sb->initFullRange(); diff --git a/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp b/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp index 3b346601245..bc360e635c1 100644 --- a/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp +++ b/searchlib/src/tests/attribute/searchable/attribute_searchable_adapter_test.cpp @@ -223,8 +223,9 @@ Result do_search(IAttributeManager &attribute_manager, const Node &node, bool st Blueprint::UP bp = source.createBlueprint(requestContext, FieldSpec(field, fieldId, handle), node); ASSERT_TRUE(bp); Result result(bp->getState().estimate().estHits, bp->getState().estimate().empty); - bp->fetchPostings(queryeval::ExecuteInfo::createForTest(strict)); - SearchIterator::UP iterator = bp->createSearch(*match_data, strict); + bp->basic_plan(strict, 100); + bp->fetchPostings(queryeval::ExecuteInfo::FULL); + SearchIterator::UP iterator = bp->createSearch(*match_data); ASSERT_TRUE(iterator); iterator->initRange(1, num_docs); extract_posting_info(result, iterator->getPostingInfo()); diff --git a/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp b/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp index a8630ea569e..7a794795cce 100644 --- a/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp +++ b/searchlib/src/tests/attribute/searchable/attribute_weighted_set_blueprint_test.cpp @@ -111,8 +111,9 @@ struct WS { FieldSpecList fields; fields.add(FieldSpec(field, fieldId, handle, ac.getAttribute(field)->getIsFilter())); queryeval::Blueprint::UP bp = searchable.createBlueprint(requestContext, fields, *node); - bp->fetchPostings(queryeval::ExecuteInfo::createForTest(strict)); - SearchIterator::UP sb = bp->createSearch(*md, strict); + bp->basic_plan(strict, 100); + bp->fetchPostings(queryeval::ExecuteInfo::FULL); + SearchIterator::UP sb = bp->createSearch(*md); return sb; } bool isWeightedSetTermSearch(Searchable &searchable, const std::string &field, bool strict) const { @@ -127,8 +128,9 @@ struct WS { FieldSpecList fields; fields.add(FieldSpec(field, fieldId, handle)); queryeval::Blueprint::UP bp = searchable.createBlueprint(requestContext, fields, *node); - bp->fetchPostings(queryeval::ExecuteInfo::createForTest(strict)); - SearchIterator::UP sb = bp->createSearch(*md, strict); + bp->basic_plan(strict, 100); + bp->fetchPostings(queryeval::ExecuteInfo::FULL); + SearchIterator::UP sb = bp->createSearch(*md); FakeResult result; sb->initRange(1, 10); for (uint32_t docId = 1; docId < 10; ++docId) { diff --git a/searchlib/src/tests/attribute/searchable/attributeblueprint_test.cpp b/searchlib/src/tests/attribute/searchable/attributeblueprint_test.cpp index 50f7d170afc..4a7cc3984dd 100644 --- a/searchlib/src/tests/attribute/searchable/attributeblueprint_test.cpp +++ b/searchlib/src/tests/attribute/searchable/attributeblueprint_test.cpp @@ -127,9 +127,9 @@ do_search(const Node &node, IAttributeManager &attribute_manager, bool expect_at } else { EXPECT_TRUE(result->get_attribute_search_context() == nullptr); } - result->fetchPostings(queryeval::ExecuteInfo::TRUE); - result->setDocIdLimit(DOCID_LIMIT); - SearchIterator::UP iterator = result->createSearch(*md, true); + result->basic_plan(true, DOCID_LIMIT); + result->fetchPostings(queryeval::ExecuteInfo::FULL); + SearchIterator::UP iterator = result->createSearch(*md); assert((bool)iterator); iterator->initRange(1, DOCID_LIMIT); EXPECT_TRUE(!iterator->seek(1)); @@ -313,8 +313,8 @@ public: ~BlueprintFactoryFixture() {} Blueprint::UP create_blueprint(const Node& term) { auto result = source.createBlueprint(request_ctx, FieldSpec(attr_name, 0, 0), term); - result->fetchPostings(queryeval::ExecuteInfo::TRUE); - result->setDocIdLimit(DOCID_LIMIT); + result->basic_plan(true, DOCID_LIMIT); + result->fetchPostings(queryeval::ExecuteInfo::FULL); return result; } void expect_document_weight_attribute() { @@ -325,14 +325,14 @@ public: } void expect_filter_search(const SimpleResult& upper, const SimpleResult& lower, const Node& term) { auto blueprint = create_blueprint(term); - auto upper_itr = blueprint->createFilterSearch(true, BFC::UPPER_BOUND); - auto lower_itr = blueprint->createFilterSearch(true, BFC::LOWER_BOUND); + auto upper_itr = blueprint->createFilterSearch(BFC::UPPER_BOUND); + auto lower_itr = blueprint->createFilterSearch(BFC::LOWER_BOUND); EXPECT_EQ(upper, SimpleResult().search(*upper_itr, DOCID_LIMIT)); EXPECT_EQ(lower, SimpleResult().search(*lower_itr, DOCID_LIMIT)); } void expect_filter_wrapper(const Node& term) { auto blueprint = create_blueprint(term); - auto itr = blueprint->createFilterSearch(true, BFC::UPPER_BOUND); + auto itr = blueprint->createFilterSearch(BFC::UPPER_BOUND); downcast<FilterWrapper>(*itr); } }; diff --git a/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp b/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp index 77acbe046ca..87e6b2320fd 100644 --- a/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp +++ b/searchlib/src/tests/attribute/searchcontext/searchcontext_test.cpp @@ -241,7 +241,7 @@ protected: // test search iterator unpacking void fillForSearchIteratorUnpackingTest(IntegerAttribute * ia, bool extra); void testSearchIteratorUnpacking(const AttributePtr & ptr, SearchContext & sc, bool extra, bool strict) { - sc.fetchPostings(queryeval::ExecuteInfo::createForTest(strict)); + sc.fetchPostings(queryeval::ExecuteInfo::FULL, true); for (bool withElementId : {false, true}) { testSearchIteratorUnpacking(ptr, sc, extra, strict, withElementId); } @@ -469,7 +469,7 @@ template <typename V, typename T> ResultSetPtr SearchContextTest::performSearch(const V & vec, const T & term) { - return performSearch(queryeval::ExecuteInfo::TRUE, vec, term, TermType::WORD); + return performSearch(queryeval::ExecuteInfo::FULL, vec, term, TermType::WORD); } template <typename V, typename T> @@ -478,7 +478,7 @@ SearchContextTest::performSearch(const queryeval::ExecuteInfo & executeInfo, con { TermFieldMatchData dummy; SearchContextPtr sc = getSearch(vec, term, termType); - sc->fetchPostings(executeInfo); + sc->fetchPostings(executeInfo, true); SearchBasePtr sb = sc->createIterator(&dummy, true); ResultSetPtr rs = performSearch(*sb, vec.getNumDocs()); return rs; @@ -504,7 +504,7 @@ void SearchContextTest::performSearch(const V & vec, const vespalib::string & term, const DocSet & expected, TermType termType) { - performSearch(queryeval::ExecuteInfo::TRUE, vec, term, expected, termType); + performSearch(queryeval::ExecuteInfo::FULL, vec, term, expected, termType); } void @@ -547,7 +547,7 @@ SearchContextTest::testFind(const PostingList<V, T> & pl, bool verify_hit_estima EXPECT_EQ(exp_est.est_hits(), act_est.est_hits()); EXPECT_EQ(exp_est.is_unknown(), act_est.is_unknown()); } - sc->fetchPostings(queryeval::ExecuteInfo::TRUE); + sc->fetchPostings(queryeval::ExecuteInfo::FULL, true); TermFieldMatchData dummy; SearchBasePtr sb = sc->createIterator(&dummy, true); ResultSetPtr rs = performSearch(*sb, pl.getAttribute().getNumDocs()); @@ -676,7 +676,7 @@ public: ~Verifier() override; SearchIterator::UP create(bool strict) const override { - _sc->fetchPostings(queryeval::ExecuteInfo::createForTest(strict)); + _sc->fetchPostings(queryeval::ExecuteInfo::FULL, strict); return _sc->createIterator(&_dummy, strict); } private: @@ -784,7 +784,7 @@ SearchContextTest::testStrictSearchIterator(SearchContext & threeHits, { TermFieldMatchData dummy; { // search for value with 3 hits - threeHits.fetchPostings(queryeval::ExecuteInfo::TRUE); + threeHits.fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = threeHits.createIterator(&dummy, true); sb->initRange(1, threeHits.attribute().getCommittedDocIdLimit()); EXPECT_TRUE(typeTester.matches(*sb)); @@ -805,7 +805,7 @@ SearchContextTest::testStrictSearchIterator(SearchContext & threeHits, } { // search for value with no hits - noHits.fetchPostings(queryeval::ExecuteInfo::TRUE); + noHits.fetchPostings(queryeval::ExecuteInfo::FULL, true); SearchBasePtr sb = noHits.createIterator(&dummy, true); sb->initRange(1, noHits.attribute().getCommittedDocIdLimit()); ASSERT_TRUE(typeTester.matches(*sb)); @@ -823,7 +823,7 @@ SearchContextTest::testNonStrictSearchIterator(SearchContext & threeHits, { TermFieldMatchData dummy; { // search for value with three hits - threeHits.fetchPostings(queryeval::ExecuteInfo::FALSE); + threeHits.fetchPostings(queryeval::ExecuteInfo::FULL, false); SearchBasePtr sb = threeHits.createIterator(&dummy, false); sb->initRange(1, threeHits.attribute().getCommittedDocIdLimit()); EXPECT_TRUE(typeTester.matches(*sb)); @@ -841,7 +841,7 @@ SearchContextTest::testNonStrictSearchIterator(SearchContext & threeHits, EXPECT_TRUE(sb->getDocId() == 5u || sb->isAtEnd()); } { // search for value with no hits - noHits.fetchPostings(queryeval::ExecuteInfo::FALSE); + noHits.fetchPostings(queryeval::ExecuteInfo::FULL, false); SearchBasePtr sb = noHits.createIterator(&dummy, false); sb->initRange(1, threeHits.attribute().getCommittedDocIdLimit()); @@ -1118,7 +1118,7 @@ SearchContextTest::performRangeSearch(const VectorType & vec, const vespalib::st { for (size_t num_threads : {1,3}) { vespalib::SimpleThreadBundle thread_bundle(num_threads); - auto executeInfo = queryeval::ExecuteInfo::create(true, 1.0, vespalib::Doom::never(), thread_bundle); + auto executeInfo = queryeval::ExecuteInfo::create(1.0, vespalib::Doom::never(), thread_bundle); performSearch(executeInfo, vec, term, expected, TermType::WORD); } } |