diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-09-25 17:45:46 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-09-25 17:45:46 +0200 |
commit | 83c97aaad8bdfd6cc11b49be4a542e179cda1b4f (patch) | |
tree | ef0c1e62f31f255ed3ec8fcb59f8bd3d43827386 /vsm/src | |
parent | 1801eb4421d5ea80b6cd881755ba140d5bb76d22 (diff) |
Add filtering support to attribute combiner dynamic field writer.
Diffstat (limited to 'vsm/src')
-rw-r--r-- | vsm/src/vespa/vsm/vsm/vsm-adapter.cpp | 13 | ||||
-rw-r--r-- | vsm/src/vespa/vsm/vsm/vsm-adapter.h | 2 |
2 files changed, 14 insertions, 1 deletions
diff --git a/vsm/src/vespa/vsm/vsm/vsm-adapter.cpp b/vsm/src/vespa/vsm/vsm/vsm-adapter.cpp index f87c327e86a..6f9e58f8718 100644 --- a/vsm/src/vespa/vsm/vsm/vsm-adapter.cpp +++ b/vsm/src/vespa/vsm/vsm/vsm-adapter.cpp @@ -2,19 +2,22 @@ #include "vsm-adapter.h" #include "docsumconfig.h" +#include <vespa/searchlib/common/matching_elements.h> #include <vespa/log/log.h> LOG_SETUP(".vsm.vsm-adapter"); using search::docsummary::ResConfigEntry; using search::docsummary::KeywordExtractor; +using search::MatchingElements; using config::ConfigSnapshot; namespace vsm { GetDocsumsStateCallback::GetDocsumsStateCallback() : _summaryFeatures(), - _rankFeatures() + _rankFeatures(), + _matching_elements() { } void GetDocsumsStateCallback::FillSummaryFeatures(GetDocsumsState * state, IDocsumEnvironment * env) @@ -45,6 +48,14 @@ void GetDocsumsStateCallback::FillDocumentLocations(GetDocsumsState *state, IDoc (void) env; } +const MatchingElements& +GetDocsumsStateCallback::fill_matching_elements() +{ + if (!_matching_elements) { + _matching_elements = std::make_unique<MatchingElements>(); + } + return *_matching_elements; +} GetDocsumsStateCallback::~GetDocsumsStateCallback() = default; diff --git a/vsm/src/vespa/vsm/vsm/vsm-adapter.h b/vsm/src/vespa/vsm/vsm/vsm-adapter.h index 2bdd0248be9..aaa73f4ba24 100644 --- a/vsm/src/vespa/vsm/vsm/vsm-adapter.h +++ b/vsm/src/vespa/vsm/vsm/vsm-adapter.h @@ -32,6 +32,7 @@ class GetDocsumsStateCallback : public search::docsummary::GetDocsumsStateCallba private: search::FeatureSet::SP _summaryFeatures; search::FeatureSet::SP _rankFeatures; + std::unique_ptr<search::MatchingElements> _matching_elements; public: GetDocsumsStateCallback(); @@ -39,6 +40,7 @@ public: void FillRankFeatures(GetDocsumsState * state, IDocsumEnvironment * env) override; void ParseLocation(GetDocsumsState * state) override; virtual void FillDocumentLocations(GetDocsumsState * state, IDocsumEnvironment * env); + virtual const search::MatchingElements& fill_matching_elements() override; void setSummaryFeatures(const search::FeatureSet::SP & sf) { _summaryFeatures = sf; } void setRankFeatures(const search::FeatureSet::SP & rf) { _rankFeatures = rf; } ~GetDocsumsStateCallback(); |