diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-03-08 15:42:40 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-03-08 15:42:40 +0100 |
commit | 722fe235a8565e29e1b957555c266b961b91c02d (patch) | |
tree | 09ca4029cdbdaffda4b5e4a93b17bc4f8e459098 /searchcorespi | |
parent | dc05f44154fed8135b2c9894a12b712389423fab (diff) |
Remove attribute context.
Diffstat (limited to 'searchcorespi')
9 files changed, 45 insertions, 140 deletions
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: |