summaryrefslogtreecommitdiffstats
path: root/streamingvisitors
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2023-10-12 17:16:03 +0200
committerTor Egge <Tor.Egge@online.no>2023-10-12 17:16:03 +0200
commit8ecab6547d68bcb155a6f1672670855410c85e8d (patch)
treecea32f20ca8ac675268766de722bce7ab461977a /streamingvisitors
parent5a540cb745a163584dd311ce43950c3e4c431c54 (diff)
Enable passing search::docsummary::IStringFieldConverter pointer to
search::docsummary::IDocsumStoreDocument::insert_summary_field member function.
Diffstat (limited to 'streamingvisitors')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp12
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h4
2 files changed, 9 insertions, 7 deletions
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
index 23985fbce13..b48f556f4be 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp
@@ -172,7 +172,7 @@ public:
DocsumStoreVsmDocument(DocsumFilter& docsum_filter, const Document& vsm_document);
~DocsumStoreVsmDocument() override;
DocsumStoreFieldValue get_field_value(const vespalib::string& field_name) const override;
- void insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const override;
+ void insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter) const override;
void insert_juniper_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IJuniperConverter& converter) const override;
void insert_document_id(vespalib::slime::Inserter& inserter) const override;
};
@@ -212,13 +212,13 @@ DocsumStoreVsmDocument::get_field_value(const vespalib::string& field_name) cons
}
void
-DocsumStoreVsmDocument::insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const
+DocsumStoreVsmDocument::insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter) const
{
if (_document != nullptr) {
auto entry_idx = _result_class.getIndexFromName(field_name.c_str());
if (entry_idx >= 0) {
assert((uint32_t) entry_idx < _result_class.getNumEntries());
- _docsum_filter.insert_summary_field(entry_idx, _vsm_document, inserter);
+ _docsum_filter.insert_summary_field(entry_idx, _vsm_document, inserter, converter);
return;
}
try {
@@ -226,7 +226,7 @@ DocsumStoreVsmDocument::insert_summary_field(const vespalib::string& field_name,
auto value(field.getDataType().createFieldValue());
if (value) {
if (_document->getValue(field, *value)) {
- SlimeFiller::insert_summary_field(*value, inserter);
+ SlimeFiller::insert_summary_field(*value, inserter, converter);
}
}
} catch (document::FieldNotFoundException&) {
@@ -393,14 +393,14 @@ DocsumFilter::get_summary_field(uint32_t entry_idx, const Document& doc)
}
void
-DocsumFilter::insert_summary_field(uint32_t entry_idx, const Document& doc, vespalib::slime::Inserter& inserter)
+DocsumFilter::insert_summary_field(uint32_t entry_idx, const Document& doc, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter)
{
const auto& field_spec = _fields[entry_idx];
auto single_source_field_id = get_single_source_field_id(field_spec);
if (single_source_field_id.has_value()) {
auto field_value = doc.getField(single_source_field_id.value());
if (field_value != nullptr) {
- SlimeFiller::insert_summary_field_with_field_filter(*field_value, inserter, field_spec.get_filter());
+ SlimeFiller::insert_summary_field_with_field_filter(*field_value, inserter, converter, field_spec.get_filter());
}
return;
}
diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h
index db35fa2ff27..2232d723781 100644
--- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h
+++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h
@@ -13,6 +13,8 @@
using search::docsummary::IDocsumStore;
+namespace search::docsummary { class IStringFieldConverter; }
+
namespace vsm {
/**
@@ -66,7 +68,7 @@ public:
std::unique_ptr<const search::docsummary::IDocsumStoreDocument> get_document(uint32_t id) override;
search::docsummary::DocsumStoreFieldValue get_summary_field(uint32_t entry_idx, const Document& doc);
- void insert_summary_field(uint32_t entry_idx, const Document& doc, vespalib::slime::Inserter& inserter);
+ void insert_summary_field(uint32_t entry_idx, const Document& doc, vespalib::slime::Inserter& inserter, search::docsummary::IStringFieldConverter* converter);
bool has_flatten_juniper_command(uint32_t entry_idx) const;
FieldModifier* get_field_modifier(uint32_t entry_idx);
};