diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-07-02 18:35:02 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-07-02 18:35:02 +0200 |
commit | 7fe5ed56aeb183da725c7225a01f23d2d91d99de (patch) | |
tree | 2b31b302c0aca379073f6bd193df93da32c16189 /streamingvisitors | |
parent | 59a1f9116e9cc37d749caa4ea7b0bf05662eae29 (diff) |
Add DocsumBlobEntryFilter to limit types in docsum blob.
Diffstat (limited to 'streamingvisitors')
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp | 7 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp | 4 |
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"); } |