aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-04 15:28:15 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-04 15:28:15 +0000
commit5cad015138021d5b480bed25bb293ac968f22286 (patch)
treec87068eb991d936ed58bf0759f78c8f92b87c570 /searchlib
parentbbe8348c819ecd5ca9069d923ba2769432e17246 (diff)
- Use c++11 for loops
- add 'explicit' - only 'override' OR 'final', not both. - Reduce code visibility.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/apps/tests/memoryindexstress_test.cpp4
-rw-r--r--searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp2
-rw-r--r--searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp1
-rw-r--r--searchlib/src/vespa/searchcommon/attribute/basictype.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp33
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h5
-rw-r--r--searchlib/src/vespa/searchlib/diskindex/diskindex.h12
-rw-r--r--searchlib/src/vespa/searchlib/memoryindex/memory_index.h26
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/blueprint.h28
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h10
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h13
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/fake_searchable.h12
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp2
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h4
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/searchable.h22
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h3
-rw-r--r--searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h9
17 files changed, 92 insertions, 96 deletions
diff --git a/searchlib/src/apps/tests/memoryindexstress_test.cpp b/searchlib/src/apps/tests/memoryindexstress_test.cpp
index d8f8cd9d67c..526b4cad9a6 100644
--- a/searchlib/src/apps/tests/memoryindexstress_test.cpp
+++ b/searchlib/src/apps/tests/memoryindexstress_test.cpp
@@ -11,6 +11,7 @@
#include <vespa/searchlib/queryeval/fake_search.h>
#include <vespa/searchlib/queryeval/fake_searchable.h>
#include <vespa/searchlib/queryeval/searchiterator.h>
+#include <vespa/searchlib/queryeval/blueprint.h>
#include <vespa/searchlib/test/index/mock_field_length_inspector.h>
#include <vespa/document/annotation/spanlist.h>
#include <vespa/document/annotation/spantree.h>
@@ -328,8 +329,7 @@ Fixture::readWork(uint32_t cnt)
FieldSpec field(fieldName, fieldId, handle);
FieldSpecList fields;
fields.add(field);
- Blueprint::UP result = index.createBlueprint(requestContext,
- fields, term);
+ Blueprint::UP result = index.createBlueprint(requestContext, fields, term);
if (!EXPECT_TRUE(result.get() != 0)) {
LOG(error, "Did not get blueprint");
break;
diff --git a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
index c806a1b02ac..b3ea948dfa7 100644
--- a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
+++ b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
@@ -10,9 +10,9 @@
#include <vespa/searchlib/query/tree/simplequery.h>
#include <vespa/searchlib/queryeval/booleanmatchiteratorwrapper.h>
#include <vespa/searchlib/queryeval/fake_requestcontext.h>
-#include <vespa/searchlib/queryeval/fake_search.h>
#include <vespa/searchlib/queryeval/fake_searchable.h>
#include <vespa/searchlib/queryeval/searchiterator.h>
+#include <vespa/searchlib/queryeval/blueprint.h>
#include <vespa/vespalib/util/sequencedtaskexecutor.h>
#include <vespa/vespalib/util/size_literals.h>
#include <vespa/vespalib/util/stringfmt.h>
diff --git a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp
index d8ae70d147d..e9c4bdb26a5 100644
--- a/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp
+++ b/searchlib/src/tests/queryeval/fake_searchable/fake_searchable_test.cpp
@@ -4,6 +4,7 @@
#include <vespa/searchlib/queryeval/fake_searchable.h>
#include <vespa/searchlib/queryeval/fake_requestcontext.h>
+#include <vespa/searchlib/queryeval/blueprint.h>
#include <vespa/searchlib/query/tree/intermediatenodes.h>
#include <vespa/searchlib/query/tree/termnodes.h>
#include <vespa/searchlib/query/tree/simplequery.h>
diff --git a/searchlib/src/vespa/searchcommon/attribute/basictype.cpp b/searchlib/src/vespa/searchcommon/attribute/basictype.cpp
index 5bab2fc06d2..d0d90d1c9d5 100644
--- a/searchlib/src/vespa/searchcommon/attribute/basictype.cpp
+++ b/searchlib/src/vespa/searchcommon/attribute/basictype.cpp
@@ -1,6 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/searchcommon/attribute/basictype.h>
+#include "basictype.h"
#include <vespa/vespalib/util/exceptions.h>
namespace search::attribute {
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
index 7af2186ed1e..5905995d586 100644
--- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.cpp
@@ -33,6 +33,7 @@
#include <vespa/searchlib/queryeval/wand/parallel_weak_and_search.h>
#include <vespa/searchlib/queryeval/weighted_set_term_blueprint.h>
#include <vespa/searchlib/queryeval/weighted_set_term_search.h>
+#include <vespa/searchlib/queryeval/irequestcontext.h>
#include <vespa/searchlib/tensor/dense_tensor_attribute.h>
#include <vespa/vespalib/util/regexp.h>
#include <vespa/vespalib/util/stringfmt.h>
@@ -193,7 +194,7 @@ AttributeFieldBlueprint::visitMembers(vespalib::ObjectVisitor &visitor) const
template <bool is_strict>
struct LocationPreFilterIterator : public OrLikeSearch<is_strict, NoUnpack>
{
- LocationPreFilterIterator(OrSearch::Children children)
+ explicit LocationPreFilterIterator(OrSearch::Children children)
: OrLikeSearch<is_strict, NoUnpack>(std::move(children), NoUnpack()) {}
void doUnpack(uint32_t) override {}
};
@@ -214,8 +215,7 @@ public:
{
uint64_t estHits(0);
const IAttributeVector &attr(_attribute);
- for (auto it(rangeVector.begin()), mt(rangeVector.end()); it != mt; it++) {
- const ZCurve::Range &r(*it);
+ for (const ZCurve::Range & r : rangeVector) {
query::Range qr(r.min(), r.max());
query::SimpleRangeTerm rt(qr, "", 0, query::Weight(0));
string stack(StackDumpCreator::create(rt));
@@ -235,7 +235,7 @@ public:
set_allow_termwise_eval(true);
}
- ~LocationPreFilterBlueprint();
+ ~LocationPreFilterBlueprint() override;
bool should_use() const { return _should_use; }
@@ -243,8 +243,8 @@ public:
createLeafSearch(const TermFieldMatchDataArray &tfmda, bool strict) const override
{
OrSearch::Children children;
- for (auto it(_rangeSearches.begin()), mt(_rangeSearches.end()); it != mt; it++) {
- children.push_back((*it)->createIterator(tfmda[0], strict));
+ for (auto & search : _rangeSearches) {
+ children.push_back(search->createIterator(tfmda[0], strict));
}
if (strict) {
return std::make_unique<LocationPreFilterIterator<true>>(std::move(children));
@@ -254,8 +254,8 @@ public:
}
void fetchPostings(const queryeval::ExecuteInfo &execInfo) override {
- for (size_t i(0); i < _rangeSearches.size(); i++) {
- _rangeSearches[i]->fetchPostings(execInfo);
+ for (auto & search : _rangeSearches) {
+ search->fetchPostings(execInfo);
}
}
};
@@ -286,7 +286,7 @@ public:
setEstimate(estimate);
}
- ~LocationPostFilterBlueprint();
+ ~LocationPostFilterBlueprint() override;
const common::Location &location() const { return _location; }
@@ -410,7 +410,7 @@ public:
{
assert(tfmda.size() == 1);
assert(getState().numFields() == 1);
- if (_terms.size() == 0) {
+ if (_terms.empty()) {
return std::make_unique<queryeval::EmptySearch>();
}
std::vector<DocumentWeightIterator> iterators;
@@ -428,7 +428,7 @@ public:
if (fields.has_field(_field_name)) {
return queryeval::MatchingElementsSearch::create(_iattr, _dictionary_snapshot, vespalib::ConstArrayRef<IDocumentWeightAttribute::LookupResult>(_terms));
} else {
- return std::unique_ptr<queryeval::MatchingElementsSearch>();
+ return {};
}
}
};
@@ -481,7 +481,7 @@ public:
_terms.reserve(size_hint);
}
- ~DirectWandBlueprint();
+ ~DirectWandBlueprint() override;
void addTerm(const IDocumentWeightAttribute::LookupKey & key, int32_t weight) {
IDocumentWeightAttribute::LookupResult result = _attr.lookup(key, _dictionary_snapshot);
@@ -500,7 +500,7 @@ public:
SearchIterator::UP createLeafSearch(const TermFieldMatchDataArray &tfmda, bool strict) const override {
assert(tfmda.size() == 1);
- if (_terms.size() == 0) {
+ if (_terms.empty()) {
return std::make_unique<queryeval::EmptySearch>();
}
return queryeval::ParallelWeakAndSearch::create(*tfmda[0],
@@ -585,7 +585,7 @@ public:
if (fields.has_field(_attrName)) {
return queryeval::MatchingElementsSearch::create(_iattr, _dictionary_snapshot, vespalib::ConstArrayRef<IDocumentWeightAttribute::LookupResult>(&_dict_entry, 1));
} else {
- return std::unique_ptr<queryeval::MatchingElementsSearch>();
+ return {};
}
}
};
@@ -637,12 +637,11 @@ public:
}
void visitLocation(LocationTerm &node) {
- Location loc(node.getTerm());
- setResult(make_location_blueprint(_field, _attr, loc));
+ setResult(make_location_blueprint(_field, _attr, node.getTerm()));
}
void visitPredicate(PredicateQuery &query) {
- const PredicateAttribute *attr = dynamic_cast<const PredicateAttribute *>(&_attr);
+ const auto *attr = dynamic_cast<const PredicateAttribute *>(&_attr);
if (!attr) {
Issue::report("Trying to apply a PredicateQuery node to a non-predicate attribute.");
setResult(std::make_unique<queryeval::EmptyBlueprint>(_field));
diff --git a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h
index fe456794a04..368af80a43d 100644
--- a/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h
+++ b/searchlib/src/vespa/searchlib/attribute/attribute_blueprint_factory.h
@@ -3,16 +3,13 @@
#pragma once
#include <vespa/searchlib/queryeval/searchable.h>
-#include <vespa/searchlib/attribute/iattributemanager.h>
-#include <vespa/searchlib/queryeval/irequestcontext.h>
namespace search {
class AttributeBlueprintFactory : public queryeval::Searchable
{
public:
- // implements Searchable
- queryeval::Blueprint::UP
+ std::unique_ptr<queryeval::Blueprint>
createBlueprint(const queryeval::IRequestContext & requestContext,
const queryeval::FieldSpec &field,
const query::Node &term) override;
diff --git a/searchlib/src/vespa/searchlib/diskindex/diskindex.h b/searchlib/src/vespa/searchlib/diskindex/diskindex.h
index 0869bccc307..f1a294f90ef 100644
--- a/searchlib/src/vespa/searchlib/diskindex/diskindex.h
+++ b/searchlib/src/vespa/searchlib/diskindex/diskindex.h
@@ -133,13 +133,13 @@ public:
*/
BitVector::UP readBitVector(const LookupResult &lookupRes) const;
- queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext,
- const queryeval::FieldSpec &field,
- const query::Node &term) override;
+ std::unique_ptr<queryeval::Blueprint> createBlueprint(const queryeval::IRequestContext & requestContext,
+ const queryeval::FieldSpec &field,
+ const query::Node &term) override;
- queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext,
- const queryeval::FieldSpecList &fields,
- const query::Node &term) override;
+ std::unique_ptr<queryeval::Blueprint> createBlueprint(const queryeval::IRequestContext & requestContext,
+ const queryeval::FieldSpecList &fields,
+ const query::Node &term) override;
/**
* Get the size on disk of this index.
diff --git a/searchlib/src/vespa/searchlib/memoryindex/memory_index.h b/searchlib/src/vespa/searchlib/memoryindex/memory_index.h
index 4296ba5bd1a..242703d4ccc 100644
--- a/searchlib/src/vespa/searchlib/memoryindex/memory_index.h
+++ b/searchlib/src/vespa/searchlib/memoryindex/memory_index.h
@@ -60,11 +60,6 @@ private:
vespalib::hash_set<uint32_t> _indexedDocs; // documents in memory index
const uint64_t _staticMemoryFootprint;
- MemoryIndex(const MemoryIndex &) = delete;
- MemoryIndex(MemoryIndex &&) = delete;
- MemoryIndex &operator=(const MemoryIndex &) = delete;
- MemoryIndex &operator=(MemoryIndex &&) = delete;
-
void updateMaxDocId(uint32_t docId) {
if (docId > _maxDocId) {
_maxDocId = docId;
@@ -99,7 +94,11 @@ public:
ISequencedTaskExecutor& invertThreads,
ISequencedTaskExecutor& pushThreads);
- ~MemoryIndex();
+ MemoryIndex(const MemoryIndex &) = delete;
+ MemoryIndex(MemoryIndex &&) = delete;
+ MemoryIndex &operator=(const MemoryIndex &) = delete;
+ MemoryIndex &operator=(MemoryIndex &&) = delete;
+ ~MemoryIndex() override;
const index::Schema &getSchema() const { return _schema; }
@@ -141,13 +140,14 @@ public:
void dump(index::IndexBuilder &indexBuilder);
// Implements Searchable
- queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext,
- const queryeval::FieldSpec &field,
- const query::Node &term) override;
-
- queryeval::Blueprint::UP createBlueprint(const queryeval::IRequestContext & requestContext,
- const queryeval::FieldSpecList &fields,
- const query::Node &term) override {
+ std::unique_ptr<queryeval::Blueprint> createBlueprint(const queryeval::IRequestContext & requestContext,
+ const queryeval::FieldSpec &field,
+ const query::Node &term) override;
+
+ std::unique_ptr<queryeval::Blueprint> createBlueprint(const queryeval::IRequestContext & requestContext,
+ const queryeval::FieldSpecList &fields,
+ const query::Node &term) override
+ {
return queryeval::Searchable::createBlueprint(requestContext, fields, term);
}
diff --git a/searchlib/src/vespa/searchlib/queryeval/blueprint.h b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
index 5dca5c9412b..b7fe627d854 100644
--- a/searchlib/src/vespa/searchlib/queryeval/blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/blueprint.h
@@ -259,12 +259,12 @@ private:
void updateState() const;
protected:
- void notifyChange() override final;
+ void notifyChange() final;
virtual State calculateState() const = 0;
public:
StateCache() : _stale(true), _state(FieldSpecBaseList()) {}
- const State &getState() const override final {
+ const State &getState() const final {
if (_stale) {
updateState();
}
@@ -296,7 +296,7 @@ protected:
// conflicting collections of field specs.
FieldSpecBaseList mixChildrenFields() const;
- State calculateState() const override final;
+ State calculateState() const final;
virtual bool isPositive(size_t index) const { (void) index; return true; }
@@ -309,9 +309,9 @@ public:
IntermediateBlueprint();
~IntermediateBlueprint() override;
- void setDocIdLimit(uint32_t limit) override final;
+ void setDocIdLimit(uint32_t limit) final;
- void optimize(Blueprint* &self) override final;
+ void optimize(Blueprint* &self) final;
void set_global_filter(const GlobalFilter &global_filter, double estimated_hit_ratio) override;
IndexList find(const IPredicate & check) const;
@@ -333,7 +333,7 @@ public:
void visitMembers(vespalib::ObjectVisitor &visitor) const override;
void fetchPostings(const ExecuteInfo &execInfo) override;
- void freeze() override final;
+ void freeze() final;
UnpackInfo calculateUnpackInfo(const fef::MatchData & md) const;
bool isIntermediate() const override { return true; }
@@ -346,7 +346,7 @@ private:
State _state;
protected:
- void optimize(Blueprint* &self) override final;
+ void optimize(Blueprint* &self) final;
void setEstimate(HitEstimate est);
void set_cost_tier(uint32_t value);
void set_allow_termwise_eval(bool value);
@@ -356,10 +356,10 @@ protected:
LeafBlueprint(const FieldSpecBaseList &fields, bool allow_termwise_eval);
public:
~LeafBlueprint() override;
- const State &getState() const override final { return _state; }
- void setDocIdLimit(uint32_t limit) override final { Blueprint::setDocIdLimit(limit); }
+ const State &getState() const final { return _state; }
+ void setDocIdLimit(uint32_t limit) final { Blueprint::setDocIdLimit(limit); }
void fetchPostings(const ExecuteInfo &execInfo) override;
- void freeze() override final;
+ void freeze() final;
SearchIteratorUP createSearch(fef::MatchData &md, bool strict) const override;
virtual SearchIteratorUP createLeafSearch(const fef::TermFieldMatchDataArray &tfmda, bool strict) const = 0;
@@ -367,14 +367,14 @@ public:
// for leaf nodes representing a single term
struct SimpleLeafBlueprint : LeafBlueprint {
- SimpleLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), true) {}
- SimpleLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, true) {}
+ explicit SimpleLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), true) {}
+ explicit SimpleLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, true) {}
};
// for leaf nodes representing more complex structures like wand/phrase
struct ComplexLeafBlueprint : LeafBlueprint {
- ComplexLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), false) {}
- ComplexLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, false) {}
+ explicit ComplexLeafBlueprint(const FieldSpecBase &field) : LeafBlueprint(FieldSpecBaseList().add(field), false) {}
+ explicit ComplexLeafBlueprint(const FieldSpecBaseList &fields) : LeafBlueprint(fields, false) {}
};
//-----------------------------------------------------------------------------
diff --git a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h
index 30c7e1722fb..c410f8b98c4 100644
--- a/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h
+++ b/searchlib/src/vespa/searchlib/queryeval/create_blueprint_visitor_helper.h
@@ -2,7 +2,7 @@
#pragma once
-#include "searchable.h"
+#include "field_spec.h"
#include "termasstring.h"
#include <vespa/searchlib/query/tree/intermediatenodes.h>
#include <vespa/searchlib/query/tree/queryvisitor.h>
@@ -12,13 +12,17 @@
namespace search::queryeval {
+class IRequestContext;
+class Searchable;
+class Blueprint;
+
class CreateBlueprintVisitorHelper : public query::QueryVisitor
{
private:
const IRequestContext & _requestContext;
Searchable & _searchable;
FieldSpec _field;
- Blueprint::UP _result;
+ std::unique_ptr<Blueprint> _result;
protected:
const IRequestContext & getRequestContext() const { return _requestContext; }
@@ -30,7 +34,7 @@ public:
template <typename T>
void setResult(std::unique_ptr<T> result) { _result = std::move(result); }
- Blueprint::UP getResult();
+ std::unique_ptr<Blueprint> getResult();
const FieldSpec &getField() const { return _field; }
diff --git a/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h
index 5955c359003..d1992fc67c5 100644
--- a/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/dot_product_blueprint.h
@@ -2,7 +2,7 @@
#pragma once
-#include "searchable.h"
+#include "blueprint.h"
#include <vespa/searchlib/fef/matchdatalayout.h>
namespace search::fef { class TermFieldMatchData; }
@@ -16,11 +16,10 @@ class DotProductBlueprint : public ComplexLeafBlueprint
std::vector<int32_t> _weights;
std::vector<Blueprint*> _terms;
- DotProductBlueprint(const DotProductBlueprint &); // disabled
- DotProductBlueprint &operator=(const DotProductBlueprint &); // disabled
-
public:
- DotProductBlueprint(const FieldSpec &field);
+ explicit DotProductBlueprint(const FieldSpec &field);
+ DotProductBlueprint(const DotProductBlueprint &) = delete;
+ DotProductBlueprint &operator=(const DotProductBlueprint &) = delete;
~DotProductBlueprint() override;
// used by create visitor
@@ -29,9 +28,7 @@ public:
// used by create visitor
void addTerm(Blueprint::UP term, int32_t weight);
- SearchIteratorUP
- createLeafSearch(const search::fef::TermFieldMatchDataArray &tfmda,
- bool strict) const override;
+ SearchIteratorUP createLeafSearch(const search::fef::TermFieldMatchDataArray &tfmda, bool strict) const override;
SearchIteratorUP createFilterSearch(bool strict, FilterConstraint constraint) const override;
void visitMembers(vespalib::ObjectVisitor &visitor) const override;
diff --git a/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h b/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h
index 5dd678e547d..a76e23ad87e 100644
--- a/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h
+++ b/searchlib/src/vespa/searchlib/queryeval/fake_searchable.h
@@ -4,8 +4,7 @@
#include "searchable.h"
#include "fake_result.h"
-
-#include <string>
+#include <vespa/vespalib/stllike/string.h>
#include <map>
namespace search::queryeval {
@@ -65,10 +64,11 @@ public:
const FakeResult &result);
using Searchable::createBlueprint;
- Blueprint::UP createBlueprint(const IRequestContext & requestContext,
- const FieldSpec &field,
- const search::query::Node &term) override;
- ~FakeSearchable();
+ std::unique_ptr<queryeval::Blueprint>
+ createBlueprint(const IRequestContext & requestContext,
+ const FieldSpec &field,
+ const search::query::Node &term) override;
+ ~FakeSearchable() override;
};
}
diff --git a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
index f7fc99af573..d69b3486537 100644
--- a/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
+++ b/searchlib/src/vespa/searchlib/queryeval/multibitvectoriterator.cpp
@@ -5,8 +5,6 @@
#include "andnotsearch.h"
#include "sourceblendersearch.h"
#include <vespa/searchlib/common/bitvectoriterator.h>
-#include <vespa/searchlib/fef/termfieldmatchdataarray.h>
-#include <vespa/vespalib/util/optimized.h>
#include <vespa/vespalib/hwaccelrated/iaccelrated.h>
namespace search::queryeval {
diff --git a/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h
index 5eb8e3ff21c..2d3cb5cca99 100644
--- a/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/same_element_blueprint.h
@@ -2,7 +2,7 @@
#pragma once
-#include "searchable.h"
+#include "blueprint.h"
#include <vespa/searchlib/fef/matchdatalayout.h>
namespace search::fef { class TermFieldMatchData; }
@@ -23,7 +23,7 @@ public:
SameElementBlueprint(const vespalib::string &field_name_in, bool expensive);
SameElementBlueprint(const SameElementBlueprint &) = delete;
SameElementBlueprint &operator=(const SameElementBlueprint &) = delete;
- ~SameElementBlueprint();
+ ~SameElementBlueprint() override;
// no match data
bool isWhiteList() const override { return true; }
diff --git a/searchlib/src/vespa/searchlib/queryeval/searchable.h b/searchlib/src/vespa/searchlib/queryeval/searchable.h
index 2467cfe4142..a8bdde69b8e 100644
--- a/searchlib/src/vespa/searchlib/queryeval/searchable.h
+++ b/searchlib/src/vespa/searchlib/queryeval/searchable.h
@@ -2,15 +2,17 @@
#pragma once
-#include "field_spec.h"
-#include "blueprint.h"
-#include <vespa/searchlib/queryeval/irequestcontext.h>
-#include <vector>
+#include <memory>
namespace search::query { class Node; }
namespace search::queryeval {
+class Blueprint;
+class IRequestContext;
+class FieldSpec;
+class FieldSpecList;
+
/**
* Abstract class extended by components to expose content that can be
* searched by a query term. A Searchable component supports searching
@@ -29,9 +31,9 @@ protected:
* @param field the field to search
* @param term the query tree term
**/
- virtual Blueprint::UP createBlueprint(const IRequestContext & requestContext,
- const FieldSpec &field,
- const search::query::Node &term) = 0;
+ virtual std::unique_ptr<Blueprint> createBlueprint(const IRequestContext & requestContext,
+ const FieldSpec &field,
+ const search::query::Node &term) = 0;
public:
typedef std::shared_ptr<Searchable> SP;
@@ -48,9 +50,9 @@ public:
* @param fields the set of fields to search
* @param term the query tree term
**/
- virtual Blueprint::UP createBlueprint(const IRequestContext & requestContext,
- const FieldSpecList &fields,
- const search::query::Node &term);
+ virtual std::unique_ptr<Blueprint> createBlueprint(const IRequestContext & requestContext,
+ const FieldSpecList &fields,
+ const search::query::Node &term);
virtual ~Searchable() = default;
};
diff --git a/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h
index 5ae7673269f..0cfb2357321 100644
--- a/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/simple_phrase_blueprint.h
@@ -2,8 +2,7 @@
#pragma once
-#include "searchable.h"
-#include "irequestcontext.h"
+#include "blueprint.h"
#include <vespa/searchlib/fef/matchdatalayout.h>
namespace search::fef { class TermFieldMatchData; }
diff --git a/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h b/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h
index b726f55d254..a840310d3d9 100644
--- a/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h
+++ b/searchlib/src/vespa/searchlib/queryeval/weighted_set_term_blueprint.h
@@ -2,7 +2,7 @@
#pragma once
-#include "searchable.h"
+#include "blueprint.h"
#include <vespa/searchlib/fef/matchdatalayout.h>
#include <vector>
@@ -18,12 +18,11 @@ class WeightedSetTermBlueprint : public ComplexLeafBlueprint
std::vector<int32_t> _weights;
std::vector<Blueprint*> _terms;
- WeightedSetTermBlueprint(const WeightedSetTermBlueprint &); // disabled
- WeightedSetTermBlueprint &operator=(const WeightedSetTermBlueprint &); // disabled
-
public:
WeightedSetTermBlueprint(const FieldSpec &field);
- ~WeightedSetTermBlueprint();
+ WeightedSetTermBlueprint(const WeightedSetTermBlueprint &) = delete;
+ WeightedSetTermBlueprint &operator=(const WeightedSetTermBlueprint &) = delete;
+ ~WeightedSetTermBlueprint() override;
// used by create visitor
// matches signature in dot product blueprint for common blueprint