summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-03-08 15:42:40 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-03-08 15:42:40 +0100
commit722fe235a8565e29e1b957555c266b961b91c02d (patch)
tree09ca4029cdbdaffda4b5e4a93b17bc4f8e459098
parentdc05f44154fed8135b2c9894a12b712389423fab (diff)
Remove attribute context.
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h41
-rw-r--r--searchcore/src/vespa/searchcore/proton/index/diskindexwrapper.h29
-rw-r--r--searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h40
-rw-r--r--searchcore/src/vespa/searchcore/proton/matching/fakesearchcontext.h11
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/matchview.cpp4
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/CMakeLists.txt1
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/fakeindexsearchable.h7
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp15
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexcollection.h6
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp26
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexsearchable.cpp32
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexsearchable.h49
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp27
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h22
14 files changed, 78 insertions, 232 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h b/searchcore/src/vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h
deleted file mode 100644
index 50fc371887f..00000000000
--- a/searchcore/src/vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h
+++ /dev/null
@@ -1,41 +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/searchcorespi/index/indexsearchable.h>
-#include <vespa/searchlib/queryeval/searchable.h>
-
-namespace proton {
-
-class IndexSearchableToSearchableAdapter : public search::queryeval::Searchable {
-private:
- searchcorespi::IndexSearchable::SP _searchable;
- const search::attribute::IAttributeContext &_attrCtx;
-
-public:
- IndexSearchableToSearchableAdapter(const searchcorespi::IndexSearchable::SP &searchable,
- const search::attribute::IAttributeContext &attrCtx)
- : _searchable(searchable),
- _attrCtx(attrCtx)
- {
- }
-
- /**
- * Implements search::queryeval::Searchable.
- */
- virtual search::queryeval::Blueprint::UP createBlueprint(const search::queryeval::IRequestContext & requestContext,
- const search::queryeval::FieldSpec &field,
- const search::query::Node &term) {
- return _searchable->createBlueprint(requestContext, field, term, _attrCtx);
- }
-
- virtual search::queryeval::Blueprint::UP createBlueprint(const search::queryeval::IRequestContext & requestContext,
- const search::queryeval::FieldSpecList &fields,
- const search::query::Node &term) {
- return _searchable->createBlueprint(requestContext, fields, term, _attrCtx);
- }
-};
-
-
-} // namespace proton
-
-
diff --git a/searchcore/src/vespa/searchcore/proton/index/diskindexwrapper.h b/searchcore/src/vespa/searchcore/proton/index/diskindexwrapper.h
index 20ba61ea13a..9477fdd8f0d 100644
--- a/searchcore/src/vespa/searchcore/proton/index/diskindexwrapper.h
+++ b/searchcore/src/vespa/searchcore/proton/index/diskindexwrapper.h
@@ -24,36 +24,27 @@ public:
/**
* Implements searchcorespi::IndexSearchable
*/
- virtual search::queryeval::Blueprint::UP
- createBlueprint(const search::queryeval::IRequestContext & requestContext,
- const search::queryeval::FieldSpec &field,
- const search::query::Node &term,
- const search::attribute::IAttributeContext &)
- {
+ Blueprint::UP
+ createBlueprint(const IRequestContext & requestContext, const FieldSpec &field, const Node &term) override {
return _index.createBlueprint(requestContext, field, term);
}
- virtual search::queryeval::Blueprint::UP
- createBlueprint(const search::queryeval::IRequestContext & requestContext,
- const search::queryeval::FieldSpecList &fields,
- const search::query::Node &term,
- const search::attribute::IAttributeContext &)
- {
+ Blueprint::UP
+ createBlueprint(const IRequestContext & requestContext, const FieldSpecList &fields, const Node &term) override {
return _index.createBlueprint(requestContext, fields, term);
}
- virtual search::SearchableStats getSearchableStats() const {
- return search::SearchableStats()
- .sizeOnDisk(_index.getSize());
+ search::SearchableStats getSearchableStats() const override {
+ return search::SearchableStats().sizeOnDisk(_index.getSize());
}
- virtual search::SerialNum getSerialNum() const override;
+ search::SerialNum getSerialNum() const override;
- virtual void accept(searchcorespi::IndexSearchableVisitor &visitor) const override;
+ void accept(searchcorespi::IndexSearchableVisitor &visitor) const override;
/**
* Implements proton::IDiskIndex
*/
- virtual const vespalib::string &getIndexDir() const { return _index.getIndexDir(); }
- virtual const search::index::Schema &getSchema() const { return _index.getSchema(); }
+ const vespalib::string &getIndexDir() const override { return _index.getIndexDir(); }
+ const search::index::Schema &getSchema() const override { return _index.getSchema(); }
};
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h b/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h
index 6521c98bcdb..9f5c2290d2f 100644
--- a/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h
+++ b/searchcore/src/vespa/searchcore/proton/index/memoryindexwrapper.h
@@ -17,8 +17,9 @@ namespace proton {
*/
class MemoryIndexWrapper : public searchcorespi::index::IMemoryIndex {
private:
+ using SerialNum = search::SerialNum;
search::memoryindex::MemoryIndex _index;
- std::atomic<search::SerialNum> _serialNum;
+ std::atomic<SerialNum> _serialNum;
const search::common::FileHeaderContext &_fileHeaderContext;
const search::TuneFileIndexing _tuneFileIndexing;
@@ -28,70 +29,65 @@ public:
const search::TuneFileIndexing &tuneFileIndexing,
searchcorespi::index::IThreadingService &
threadingService,
- search::SerialNum serialNum);
+ SerialNum serialNum);
/**
* Implements searchcorespi::IndexSearchable
*/
- virtual search::queryeval::Blueprint::UP
+ search::queryeval::Blueprint::UP
createBlueprint(const search::queryeval::IRequestContext & requestContext,
const search::queryeval::FieldSpec &field,
- const search::query::Node &term,
- const search::attribute::IAttributeContext &) override
+ const search::query::Node &term) override
{
return _index.createBlueprint(requestContext, field, term);
}
- virtual search::queryeval::Blueprint::UP
+ search::queryeval::Blueprint::UP
createBlueprint(const search::queryeval::IRequestContext & requestContext,
const search::queryeval::FieldSpecList &fields,
- const search::query::Node &term,
- const search::attribute::IAttributeContext &) override
+ const search::query::Node &term) override
{
return _index.createBlueprint(requestContext, fields, term);
}
- virtual search::SearchableStats getSearchableStats() const override {
+ search::SearchableStats getSearchableStats() const override {
return search::SearchableStats()
.memoryUsage(getMemoryUsage())
.docsInMemory(_index.getNumDocs())
.sizeOnDisk(0);
}
- virtual search::SerialNum getSerialNum() const override;
+ SerialNum getSerialNum() const override;
- virtual void accept(searchcorespi::IndexSearchableVisitor &visitor) const override;
+ void accept(searchcorespi::IndexSearchableVisitor &visitor) const override;
/**
* Implements proton::IMemoryIndex
*/
- virtual bool hasReceivedDocumentInsert() const override {
+ bool hasReceivedDocumentInsert() const override {
return _index.getDocIdLimit() > 1u;
}
- virtual search::index::Schema::SP getWipeTimeSchema() const override {
+ search::index::Schema::SP getWipeTimeSchema() const override {
return _index.getWipeTimeSchema();
}
- virtual search::MemoryUsage getMemoryUsage() const override {
+ search::MemoryUsage getMemoryUsage() const override {
return _index.getMemoryUsage();
}
- virtual void insertDocument(uint32_t lid, const document::Document &doc) override {
+ void insertDocument(uint32_t lid, const document::Document &doc) override {
_index.insertDocument(lid, doc);
}
- virtual void removeDocument(uint32_t lid) override {
+ void removeDocument(uint32_t lid) override {
_index.removeDocument(lid);
}
uint64_t getStaticMemoryFootprint() const override {
return _index.getStaticMemoryFootprint();
}
- virtual void commit(OnWriteDoneType onWriteDone,
- search::SerialNum serialNum) override {
+ void commit(OnWriteDoneType onWriteDone, SerialNum serialNum) override {
_index.commit(onWriteDone);
_serialNum.store(serialNum, std::memory_order_relaxed);
}
- virtual void wipeHistory(const search::index::Schema &schema) override{
+ void wipeHistory(const search::index::Schema &schema) override {
_index.wipeHistory(schema);
}
- virtual void flushToDisk(const vespalib::string &flushDir,
- uint32_t docIdLimit,
- search::SerialNum serialNum) override;
+ void flushToDisk(const vespalib::string &flushDir, uint32_t docIdLimit, SerialNum serialNum) override;
};
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/matching/fakesearchcontext.h b/searchcore/src/vespa/searchcore/proton/matching/fakesearchcontext.h
index 3db4a74b7f7..b17c4cb4f27 100644
--- a/searchcore/src/vespa/searchcore/proton/matching/fakesearchcontext.h
+++ b/searchcore/src/vespa/searchcore/proton/matching/fakesearchcontext.h
@@ -3,7 +3,6 @@
#pragma once
#include "isearchcontext.h"
-#include <vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h>
#include <vespa/searchcorespi/index/fakeindexsearchable.h>
#include <vespa/searchcorespi/index/indexcollection.h>
#include <vespa/searchlib/queryeval/fake_searchable.h>
@@ -30,7 +29,6 @@ private:
search::queryeval::ISourceSelector::SP _selector;
search::attribute::IAttributeContext *_attrCtx;
IndexCollection::SP _indexes;
- IndexSearchableToSearchableAdapter _searchableAdapter;
FakeSearchable _attrSearchable;
uint32_t _docIdLimit;
@@ -41,7 +39,6 @@ public:
_selector(new search::FixedSourceSelector(0, "fs", initialNumDocs)),
_attrCtx(NULL),
_indexes(new IndexCollection(_selector)),
- _searchableAdapter(_indexes, *_attrCtx),
_attrSearchable(),
_docIdLimit(initialNumDocs) {}
@@ -64,15 +61,15 @@ public:
search::queryeval::ISourceSelector &selector() { return *_selector; }
// Implements ISearchContext
- virtual search::queryeval::Searchable &getIndexes() {
- return _searchableAdapter;
+ search::queryeval::Searchable &getIndexes() override {
+ return *_indexes;
}
- virtual search::queryeval::Searchable &getAttributes() {
+ search::queryeval::Searchable &getAttributes() override {
return _attrSearchable;
}
- virtual uint32_t getDocIdLimit() {
+ uint32_t getDocIdLimit() override {
return _docIdLimit;
}
virtual const vespalib::Doom & getDoom() const { return _doom; }
diff --git a/searchcore/src/vespa/searchcore/proton/server/matchview.cpp b/searchcore/src/vespa/searchcore/proton/server/matchview.cpp
index e1dec2482a4..86ee2fe2ac0 100644
--- a/searchcore/src/vespa/searchcore/proton/server/matchview.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/matchview.cpp
@@ -2,7 +2,6 @@
#include "matchview.h"
#include "searchcontext.h"
-#include <vespa/searchcore/proton/common/indexsearchabletosearchableadapter.h>
#include <vespa/searchlib/engine/searchrequest.h>
#include <vespa/searchlib/engine/searchreply.h>
@@ -59,8 +58,7 @@ MatchView::getMatcher(const vespalib::string & rankProfile) const
MatchContext::UP MatchView::createContext() const {
IAttributeContext::UP attrCtx = _attrMgr->createContext();
- Searchable::SP indexSearchable(new IndexSearchableToSearchableAdapter(_indexSearchable, *attrCtx));
- ISearchContext::UP searchCtx(new SearchContext(indexSearchable, _docIdLimit.get()));
+ ISearchContext::UP searchCtx(new SearchContext(_indexSearchable, _docIdLimit.get()));
return MatchContext::UP(new MatchContext(std::move(attrCtx), std::move(searchCtx)));
}
diff --git a/searchcorespi/src/vespa/searchcorespi/index/CMakeLists.txt b/searchcorespi/src/vespa/searchcorespi/index/CMakeLists.txt
index 84891e37307..f061077d6e2 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/CMakeLists.txt
+++ b/searchcorespi/src/vespa/searchcorespi/index/CMakeLists.txt
@@ -19,7 +19,6 @@ vespa_add_library(searchcorespi_index OBJECT
indexmaintainercontext.cpp
indexmanagerconfig.cpp
indexreadutilities.cpp
- indexsearchable.cpp
index_searchable_stats.cpp
memory_index_stats.cpp
indexwriteutilities.cpp
diff --git a/searchcorespi/src/vespa/searchcorespi/index/fakeindexsearchable.h b/searchcorespi/src/vespa/searchcorespi/index/fakeindexsearchable.h
index 9802e1aa0b4..2a33828c05b 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/fakeindexsearchable.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/fakeindexsearchable.h
@@ -25,8 +25,7 @@ public:
Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &) override
+ const Node &term) override
{
return _fake.createBlueprint(requestContext, field, term);
}
@@ -35,8 +34,8 @@ public:
return search::SearchableStats();
}
- virtual search::SerialNum getSerialNum() const override { return 0; }
- virtual void accept(IndexSearchableVisitor &visitor) const override {
+ search::SerialNum getSerialNum() const override { return 0; }
+ void accept(IndexSearchableVisitor &visitor) const override {
(void) visitor;
}
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
index cf9c06ac468..9bc5e547462 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
@@ -163,7 +163,6 @@ class CreateBlueprintVisitor : public search::query::QueryVisitor {
private:
const IIndexCollection &_indexes;
const FieldSpecList &_fields;
- const IAttributeContext &_attrCtx;
const IRequestContext &_requestContext;
Blueprint::UP _result;
@@ -171,7 +170,7 @@ private:
void visitTerm(NodeType &n) {
Mixer mixer(_indexes.getSourceSelector());
for (size_t i = 0; i < _indexes.getSourceCount(); ++i) {
- Blueprint::UP blueprint = _indexes.getSearchable(i).createBlueprint(_requestContext, _fields, n, _attrCtx);
+ Blueprint::UP blueprint = _indexes.getSearchable(i).createBlueprint(_requestContext, _fields, n);
blueprint->setSourceId(_indexes.getSourceId(i));
mixer.addIndex(std::move(blueprint));
}
@@ -204,11 +203,9 @@ private:
public:
CreateBlueprintVisitor(const IIndexCollection &indexes,
const FieldSpecList &fields,
- const IAttributeContext &attrCtx,
const IRequestContext & requestContext)
: _indexes(indexes),
_fields(fields),
- _attrCtx(attrCtx),
_requestContext(requestContext),
_result() {}
@@ -220,21 +217,19 @@ public:
Blueprint::UP
IndexCollection::createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term)
{
FieldSpecList fields;
fields.add(field);
- return createBlueprint(requestContext, fields, term, attrCtx);
+ return createBlueprint(requestContext, fields, term);
}
Blueprint::UP
IndexCollection::createBlueprint(const IRequestContext & requestContext,
const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term)
{
- CreateBlueprintVisitor visitor(*this, fields, attrCtx, requestContext);
+ CreateBlueprintVisitor visitor(*this, fields, requestContext);
const_cast<Node &>(term).accept(visitor);
return visitor.getResult();
}
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
index df7375b8580..596d9201063 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
@@ -53,13 +53,11 @@ public:
Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx) override;
+ const Node &term) override;
Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx) override;
+ const Node &term) override;
search::SearchableStats getSearchableStats() const override;
search::SerialNum getSerialNum() const override;
void accept(IndexSearchableVisitor &visitor) const override;
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp
index 2a8ba4f71c0..7659a428fa3 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexmaintainer.cpp
@@ -97,35 +97,35 @@ public:
/**
* Implements searchcorespi::IndexSearchable
*/
- virtual Blueprint::UP
+ Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term) override
{
- return _index->createBlueprint(requestContext, field, term, attrCtx);
+ FieldSpecList fsl;
+ fsl.add(field);
+ return _index->createBlueprint(requestContext, fsl, term);
}
- virtual Blueprint::UP
+ Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term) override
{
- return _index->createBlueprint(requestContext, fields, term, attrCtx);
+ return _index->createBlueprint(requestContext, fields, term);
}
- virtual search::SearchableStats getSearchableStats() const { return _index->getSearchableStats(); }
- virtual search::SerialNum getSerialNum() const override {
+ search::SearchableStats getSearchableStats() const override { return _index->getSearchableStats(); }
+ search::SerialNum getSerialNum() const override {
return _index->getSerialNum();
}
- virtual void accept(IndexSearchableVisitor &visitor) const override {
+ void accept(IndexSearchableVisitor &visitor) const override {
_index->accept(visitor);
}
/**
* Implements IDiskIndex
*/
- virtual const vespalib::string &getIndexDir() const { return _index->getIndexDir(); }
- virtual const search::index::Schema &getSchema() const { return _index->getSchema(); }
+ const vespalib::string &getIndexDir() const override { return _index->getIndexDir(); }
+ const search::index::Schema &getSchema() const override { return _index->getSchema(); }
};
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.cpp
deleted file mode 100644
index d7f3c4ef44f..00000000000
--- a/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-
-#include "indexsearchable.h"
-#include <vespa/searchlib/queryeval/intermediate_blueprints.h>
-#include <vespa/searchlib/queryeval/leaf_blueprints.h>
-
-using namespace search::queryeval;
-
-namespace searchcorespi {
-
-IndexSearchable::Blueprint::UP
-IndexSearchable::createBlueprint(const IRequestContext & requestContext,
- const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx)
-{
- if (fields.empty()) {
- return Blueprint::UP(new EmptyBlueprint());
- }
- if (fields.size() == 1) {
- return createBlueprint(requestContext, fields[0], term, attrCtx);
- }
- OrBlueprint *b = new OrBlueprint();
- Blueprint::UP result(b);
- for (size_t i = 0; i < fields.size(); ++i) {
- b->addChild(createBlueprint(requestContext, fields[i], term, attrCtx));
- }
- return result;
-}
-
-} // namespace searchcorespi
-
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.h b/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.h
index 89a7c8d9f07..4efdec73d5a 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexsearchable.h
@@ -2,6 +2,7 @@
#pragma once
+#include <vespa/searchlib/queryeval/searchable.h>
#include <vespa/searchcommon/attribute/iattributecontext.h>
#include <vespa/searchlib/query/tree/node.h>
#include <vespa/searchlib/queryeval/field_spec.h>
@@ -25,52 +26,18 @@ class IndexSearchableVisitor;
* that let the components access a per query attribute context that expose
* attribute vectors that can be utilized during query evaluation.
**/
-class IndexSearchable
+class IndexSearchable : public search::queryeval::Searchable
{
protected:
- typedef search::queryeval::IRequestContext IRequestContext;
- typedef search::queryeval::FieldSpec FieldSpec;
- typedef search::queryeval::FieldSpecList FieldSpecList;
- typedef search::query::Node Node;
- typedef search::attribute::IAttributeContext IAttributeContext;
- typedef search::queryeval::Blueprint Blueprint;
+ using IRequestContext = search::queryeval::IRequestContext;
+ using FieldSpec = search::queryeval::FieldSpec;
+ using FieldSpecList = search::queryeval::FieldSpecList;
+ using Node = search::query::Node;
+ using IAttributeContext = search::attribute::IAttributeContext;
+ using Blueprint = search::queryeval::Blueprint;
public:
typedef std::shared_ptr<IndexSearchable> SP;
- IndexSearchable() {}
-
- virtual ~IndexSearchable() {}
-
- /**
- * Create a blueprint searching a single field.
- *
- * @return blueprint
- * @param field the field to search
- * @param term the query tree term
- * @param attrCtx the per query attribute context
- **/
- virtual Blueprint::UP
- createBlueprint(const IRequestContext & requestContext,
- const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx) = 0;
-
- /**
- * Create a blueprint searching a set of fields. The default
- * implementation of this function will create blueprints for
- * individual fields and combine them with an OR blueprint.
- *
- * @return blueprint
- * @param fields the set of fields to search
- * @param term the query tree term
- * @param attrCtx the per query attribute context
- **/
- virtual Blueprint::UP
- createBlueprint(const IRequestContext & requestContext,
- const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx);
-
/**
* Returns the searchable stats for this index searchable.
*/
diff --git a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp
index 90daea72703..73a7b0c4f67 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.cpp
@@ -142,32 +142,21 @@ WarmupIndexCollection::handledBefore(uint32_t fieldId, const Node &term)
Blueprint::UP
WarmupIndexCollection::createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term)
{
- if ( _warmupEndTime == 0) {
- // warmup done
- return _next->createBlueprint(requestContext, field, term, attrCtx);
- }
- if ( ! handledBefore(field.getFieldId(), term) ) {
- MatchDataLayout mdl;
- FieldSpec fs(field.getName(), field.getFieldId(), mdl.allocTermField(field.getFieldId()), field.isFilter());
- Task::UP task(new WarmupTask(mdl.createMatchData(), *this));
- static_cast<WarmupTask &>(*task).createBlueprint(fs, term, attrCtx);
- fireWarmup(std::move(task));
- }
- return _prev->createBlueprint(requestContext, field, term, attrCtx);
+ FieldSpecList fsl;
+ fsl.add(field);
+ return createBlueprint(requestContext, fsl,term);
}
Blueprint::UP
WarmupIndexCollection::createBlueprint(const IRequestContext & requestContext,
const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx)
+ const Node &term)
{
if ( _warmupEndTime == 0) {
// warmup done
- return _next->createBlueprint(requestContext, fields, term, attrCtx);
+ return _next->createBlueprint(requestContext, fields, term);
}
MatchDataLayout mdl;
FieldSpecList fsl;
@@ -180,10 +169,10 @@ WarmupIndexCollection::createBlueprint(const IRequestContext & requestContext,
}
if (needWarmUp) {
Task::UP task(new WarmupTask(mdl.createMatchData(), *this));
- static_cast<WarmupTask &>(*task).createBlueprint(fsl, term, attrCtx);
+ static_cast<WarmupTask &>(*task).createBlueprint(fsl, term);
fireWarmup(std::move(task));
}
- return _prev->createBlueprint(requestContext, fields, term, attrCtx);
+ return _prev->createBlueprint(requestContext, fields, term);
}
search::SearchableStats
diff --git a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h
index 210a64a6037..7f96b401268 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/warmupindexcollection.h
@@ -43,13 +43,11 @@ public:
Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx) override;
+ const Node &term) override;
Blueprint::UP
createBlueprint(const IRequestContext & requestContext,
const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx);
+ const Node &term);
search::SearchableStats getSearchableStats() const override;
search::SerialNum getSerialNum() const override;
void accept(IndexSearchableVisitor &visitor) const override;
@@ -75,20 +73,12 @@ private:
_bluePrint(),
_requestContext()
{ }
- WarmupTask &
- createBlueprint(const FieldSpec &field,
- const Node &term,
- const IAttributeContext &attrCtx)
- {
- _bluePrint = _warmup.createBlueprint(_requestContext, field, term, attrCtx);
+ WarmupTask &createBlueprint(const FieldSpec &field, const Node &term) {
+ _bluePrint = _warmup.createBlueprint(_requestContext, field, term);
return *this;
}
- WarmupTask &
- createBlueprint(const FieldSpecList &fields,
- const Node &term,
- const IAttributeContext &attrCtx)
- {
- _bluePrint = _warmup.createBlueprint(_requestContext, fields, term, attrCtx);
+ WarmupTask &createBlueprint(const FieldSpecList &fields, const Node &term) {
+ _bluePrint = _warmup.createBlueprint(_requestContext, fields, term);
return *this;
}
private: