summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--searchcommon/src/vespa/searchcommon/attribute/iattributevector.h8
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributevector.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.h1
4 files changed, 14 insertions, 1 deletions
diff --git a/searchcommon/src/vespa/searchcommon/attribute/iattributevector.h b/searchcommon/src/vespa/searchcommon/attribute/iattributevector.h
index edc71591175..331e950879a 100644
--- a/searchcommon/src/vespa/searchcommon/attribute/iattributevector.h
+++ b/searchcommon/src/vespa/searchcommon/attribute/iattributevector.h
@@ -11,6 +11,7 @@
namespace search {
+class IDocumentWeightAttribute;
class QueryTermSimple;
namespace attribute {
@@ -255,6 +256,13 @@ public:
const SearchContextParams &params) const = 0;
/**
+ * Type-safe down-cast to an attribute supporting direct document weight iterators.
+ *
+ * @return document weight attribute or nullptr if not supported.
+ */
+ virtual const IDocumentWeightAttribute *asDocumentWeightAttribute() const = 0;
+
+ /**
* Returns the basic type of this attribute vector.
*
* @return basic type
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.h b/searchlib/src/vespa/searchlib/attribute/attributevector.h
index 80f2fed9f8d..08d954b974f 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributevector.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributevector.h
@@ -503,7 +503,7 @@ public:
////// Search API
// type-safe down-cast to attribute supporting direct document weight iterators
- virtual const IDocumentWeightAttribute *asDocumentWeightAttribute() const;
+ virtual const IDocumentWeightAttribute *asDocumentWeightAttribute() const override;
/**
- Search for equality
diff --git a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.cpp b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.cpp
index f02bf78c59e..5e2973790fc 100644
--- a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.cpp
@@ -99,6 +99,10 @@ std::unique_ptr<ISearchContext> ImportedAttributeVector::createSearchContext(std
return std::unique_ptr<ISearchContext>();
}
+const IDocumentWeightAttribute *ImportedAttributeVector::asDocumentWeightAttribute() const {
+ return nullptr;
+}
+
BasicType::Type ImportedAttributeVector::getBasicType() const {
return _target_attribute->getBasicType();
}
diff --git a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.h b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.h
index 645f61d5aaa..95a817bac35 100644
--- a/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.h
+++ b/searchlib/src/vespa/searchlib/attribute/imported_attribute_vector.h
@@ -52,6 +52,7 @@ public:
bool findEnum(const char * value, EnumHandle & e) const override;
std::unique_ptr<ISearchContext> createSearchContext(std::unique_ptr<QueryTermSimple> term,
const SearchContextParams &params) const override;
+ const IDocumentWeightAttribute *asDocumentWeightAttribute() const override;
BasicType::Type getBasicType() const override;
size_t getFixedWidth() const override;
CollectionType::Type getCollectionType() const override;