diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-09-21 10:35:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-21 10:35:32 +0200 |
commit | 79e303da0f7e7d2a4716601bd384745d504be98a (patch) | |
tree | f3d60e7389da653ed6b61e612ebdba7665df536d /streamingvisitors | |
parent | 222e46fbd5e0d69b3166a09d712ce3466d29d7b9 (diff) | |
parent | b8d3ab8c0ad28c5cedbe414eb9c7c55a4e0bd6ae (diff) |
Merge pull request #24142 from vespa-engine/geirst/optimize-summary-class-resolving
Optimize resolving and usage of summary result class.
Diffstat (limited to 'streamingvisitors')
-rw-r--r-- | streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp | 10 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp | 2 | ||||
-rw-r--r-- | streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp | 6 |
3 files changed, 10 insertions, 8 deletions
diff --git a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp index 79bd5a4f77b..205bf54ce5e 100644 --- a/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp +++ b/streamingvisitors/src/vespa/searchvisitor/searchvisitor.cpp @@ -145,13 +145,15 @@ SearchVisitor::SummaryGenerator::get_streaming_docsums_state(const vespalib::str if (itr != _docsum_states.end()) { return *itr->second; } - auto rci = _docsumWriter->resolveClassInfo(summary_class); + vespalib::hash_set<vespalib::string> fields; + for (const auto& field: _summaryFields) { + fields.insert(field); + } + auto rci = _docsumWriter->resolveClassInfo(summary_class, fields); auto state = std::make_unique<StreamingDocsumsState>(_callback, rci); auto &ds = state->get_state(); ds._args.setResultClassName(summary_class); - for (const auto &field: _summaryFields) { - ds._args.add_field(field); - } + ds._args.set_fields(fields); if (_dump_features.has_value()) { ds._args.dumpFeatures(_dump_features.value()); } diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp index 7fbef6307b2..e0ed3f6c5e4 100644 --- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp +++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp @@ -330,7 +330,7 @@ void DocsumFilter::init(const FieldMap & fieldMap, const FieldPathMapT & fieldPa const ResConfigEntry &entry = *resClass->GetEntry(i); const DocsumTools::FieldSpec & toolsSpec = inputSpecs[i]; _fields.push_back(DocsumFieldSpec(toolsSpec.getCommand())); - LOG(debug, "About to prepare field spec for summary field '%s'", entry._name.c_str()); + LOG(debug, "About to prepare field spec for summary field '%s'", entry.name().c_str()); prepareFieldSpec(_fields.back(), toolsSpec, fieldMap, fieldPathMap); } assert(entryCnt == _fields.size()); diff --git a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp index 5b3ef733eec..34a8ca8713e 100644 --- a/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp +++ b/streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp @@ -92,12 +92,12 @@ DocsumTools::obtainFieldNames(const FastS_VsmsummaryHandle &cfg) for (uint32_t i = 0; i < _resultClass->GetNumEntries(); ++i) { const ResConfigEntry * entry = _resultClass->GetEntry(i); _fieldSpecs.emplace_back(); - _fieldSpecs.back().setOutputName(entry->_name); + _fieldSpecs.back().setOutputName(entry->name()); bool found = false; if (cfg) { // check if we have this summary field in the vsmsummary config for (uint32_t j = 0; j < cfg->fieldmap.size() && !found; ++j) { - if (entry->_name == cfg->fieldmap[j].summary.c_str()) { + if (entry->name() == cfg->fieldmap[j].summary.c_str()) { for (uint32_t k = 0; k < cfg->fieldmap[j].document.size(); ++k) { _fieldSpecs.back().getInputNames().push_back(cfg->fieldmap[j].document[k].field); } @@ -108,7 +108,7 @@ DocsumTools::obtainFieldNames(const FastS_VsmsummaryHandle &cfg) } if (!found) { // use yourself as input - _fieldSpecs.back().getInputNames().push_back(entry->_name); + _fieldSpecs.back().getInputNames().push_back(entry->name()); } } } else { |