summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2022-07-02 18:35:02 +0200
committerTor Egge <Tor.Egge@online.no>2022-07-02 18:35:02 +0200
commit7fe5ed56aeb183da725c7225a01f23d2d91d99de (patch)
tree2b31b302c0aca379073f6bd193df93da32c16189 /streamingvisitors
parent59a1f9116e9cc37d749caa4ea7b0bf05662eae29 (diff)
Add DocsumBlobEntryFilter to limit types in docsum blob.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp7
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp4
2 files changed, 9 insertions, 2 deletions
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
index c425fc0b05e..4de4fc21c43 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
@@ -449,7 +449,12 @@ DocsumFilter::getMappedDocsum(uint32_t id)
const Document & doc = _docsumCache->getDocSum(id);
_packer.Init(resClass->GetClassID());
- for (FieldSpecList::iterator it(_fields.begin()), end = _fields.end(); it != end; ++it) {
+ uint32_t entry_idx = 0;
+ for (FieldSpecList::iterator it(_fields.begin()), end = _fields.end(); it != end; ++it, ++entry_idx) {
+ if (entry_idx != _packer.get_entry_idx()) {
+ // Entry is not present in docsum blob
+ continue;
+ }
ResType type = it->getResultType();
if (type == RES_JSONSTRING) {
// this really means 'structured data'
diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
index 5507532d4f3..f9b56fcf2d5 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp
@@ -9,6 +9,7 @@
LOG_SETUP(".vsm.vsm-adapter");
using search::docsummary::ResConfigEntry;
+using search::docsummary::DocsumBlobEntryFilter;
using search::docsummary::KeywordExtractor;
using search::MatchingElements;
using config::ConfigSnapshot;
@@ -135,7 +136,8 @@ VSMAdapter::configure(const VSMConfigSnapshot & snapshot)
LOG(debug, "configureVsmSummary(): outputclass='%s'", vsmSummary->outputclass.c_str()); // UlfC: debugging
// init result config
- std::unique_ptr<ResultConfig> resCfg(new ResultConfig());
+ DocsumBlobEntryFilter docsum_blob_entry_filter;
+ std::unique_ptr<ResultConfig> resCfg(new ResultConfig(docsum_blob_entry_filter));
if ( ! resCfg->ReadConfig(*summary.get(), _configId.c_str())) {
throw std::runtime_error("(re-)configuration of VSM (docsum tools) failed due to bad summary config");
}