aboutsummaryrefslogtreecommitdiffstats
path: root/vsm
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-09-25 17:45:46 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-09-25 17:45:46 +0200
commit83c97aaad8bdfd6cc11b49be4a542e179cda1b4f (patch)
treeef0c1e62f31f255ed3ec8fcb59f8bd3d43827386 /vsm
parent1801eb4421d5ea80b6cd881755ba140d5bb76d22 (diff)
Add filtering support to attribute combiner dynamic field writer.
Diffstat (limited to 'vsm')
-rw-r--r--vsm/src/vespa/vsm/vsm/vsm-adapter.cpp13
-rw-r--r--vsm/src/vespa/vsm/vsm/vsm-adapter.h2
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();