summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-09-21 10:35:32 +0200
committerGitHub <noreply@github.com>2022-09-21 10:35:32 +0200
commit79e303da0f7e7d2a4716601bd384745d504be98a (patch)
treef3d60e7389da653ed6b61e612ebdba7665df536d /streamingvisitors
parent222e46fbd5e0d69b3166a09d712ce3466d29d7b9 (diff)
parentb8d3ab8c0ad28c5cedbe414eb9c7c55a4e0bd6ae (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.cpp10
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp2
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/vsm-adapter.cpp6
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 {