From 8ecab6547d68bcb155a6f1672670855410c85e8d Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Thu, 12 Oct 2023 17:16:03 +0200 Subject: Enable passing search::docsummary::IStringFieldConverter pointer to search::docsummary::IDocsumStoreDocument::insert_summary_field member function. --- streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp | 12 ++++++------ streamingvisitors/src/vespa/vsm/vsm/docsumfilter.h | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'streamingvisitors/src') 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 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); }; -- cgit v1.2.3