diff options
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/vespa/searchlib/common/featureset.h | 8 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/engine/searchreply.cpp | 20 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/engine/searchreply.h | 3 |
3 files changed, 20 insertions, 11 deletions
diff --git a/searchlib/src/vespa/searchlib/common/featureset.h b/searchlib/src/vespa/searchlib/common/featureset.h index 3bce5c92640..1415d4b48ef 100644 --- a/searchlib/src/vespa/searchlib/common/featureset.h +++ b/searchlib/src/vespa/searchlib/common/featureset.h @@ -146,5 +146,11 @@ public: const Value *getFeaturesByDocId(uint32_t docId) const; }; -} // namespace search +// An even simpler feature container. Used to pass match features around. +struct FeatureValues { + using Value = FeatureSet::Value; + std::vector<vespalib::string> names; + std::vector<Value> values; // values.size() == names.size() * N +}; +} // namespace search diff --git a/searchlib/src/vespa/searchlib/engine/searchreply.cpp b/searchlib/src/vespa/searchlib/engine/searchreply.cpp index 954b3d5141c..8caf254fff7 100644 --- a/searchlib/src/vespa/searchlib/engine/searchreply.cpp +++ b/searchlib/src/vespa/searchlib/engine/searchreply.cpp @@ -12,6 +12,7 @@ SearchReply::SearchReply() groupResult(), coverage(), hits(), + match_features(), request(), my_issues() { } @@ -19,15 +20,16 @@ SearchReply::SearchReply() SearchReply::~SearchReply() = default; SearchReply::SearchReply(const SearchReply &rhs) - : _distributionKey (rhs._distributionKey), - totalHitCount(rhs.totalHitCount), - sortIndex (rhs.sortIndex), - sortData (rhs.sortData), - groupResult (rhs.groupResult), - coverage (rhs.coverage), - hits (rhs.hits), - request(), // NB not copied - my_issues() // NB not copied + : _distributionKey (rhs._distributionKey), + totalHitCount (rhs.totalHitCount), + sortIndex (rhs.sortIndex), + sortData (rhs.sortData), + groupResult (rhs.groupResult), + coverage (rhs.coverage), + hits (rhs.hits), + match_features (rhs.match_features), + request(), // NB not copied + my_issues() // NB not copied { } } diff --git a/searchlib/src/vespa/searchlib/engine/searchreply.h b/searchlib/src/vespa/searchlib/engine/searchreply.h index b23a5fc192e..25418a698c2 100644 --- a/searchlib/src/vespa/searchlib/engine/searchreply.h +++ b/searchlib/src/vespa/searchlib/engine/searchreply.h @@ -5,6 +5,7 @@ #include <vespa/document/base/globalid.h> #include <vespa/searchlib/common/hitrank.h> #include <vespa/searchlib/common/unique_issues.h> +#include <vespa/searchlib/common/featureset.h> #include <vespa/vespalib/util/array.h> #include <vespa/searchlib/engine/searchrequest.h> #include <vector> @@ -70,6 +71,7 @@ public: vespalib::Array<char> groupResult; Coverage coverage; std::vector<Hit> hits; + FeatureValues match_features; PropertiesMap propertiesMap; SearchRequest::UP request; @@ -84,4 +86,3 @@ public: }; } - |