aboutsummaryrefslogtreecommitdiffstats
path: root/searchcorespi
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 /searchcorespi
parentdc05f44154fed8135b2c9894a12b712389423fab (diff)
Remove attribute context.
Diffstat (limited to 'searchcorespi')
-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
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: