summaryrefslogtreecommitdiffstats
path: root/searchsummary
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 /searchsummary
parent5a540cb745a163584dd311ce43950c3e4c431c54 (diff)
Enable passing search::docsummary::IStringFieldConverter pointer to
search::docsummary::IDocsumStoreDocument::insert_summary_field member function.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp4
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.h2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/i_docsum_store_document.h3
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp8
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h4
6 files changed, 12 insertions, 11 deletions
diff --git a/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp b/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp
index 9468cc30a3d..10aedc6d9d0 100644
--- a/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp
+++ b/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp
@@ -351,7 +351,7 @@ SlimeFillerTest::expect_insert_summary_field_with_field_filter(const vespalib::s
{
Slime slime;
SlimeInserter inserter(slime);
- SlimeFiller::insert_summary_field_with_field_filter(fv, inserter, filter);
+ SlimeFiller::insert_summary_field_with_field_filter(fv, inserter, nullptr, filter);
auto act = slime_to_string(slime);
EXPECT_EQ(exp, act);
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp
index c6756a6fd1a..63b71929d63 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp
@@ -37,11 +37,11 @@ DocsumStoreDocument::get_field_value(const vespalib::string& field_name) const
}
void
-DocsumStoreDocument::insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const
+DocsumStoreDocument::insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter) const
{
auto field_value = get_field_value(field_name);
if (field_value) {
- SlimeFiller::insert_summary_field(*field_value, inserter);
+ SlimeFiller::insert_summary_field(*field_value, inserter, converter);
}
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.h b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.h
index f6e4e7e1244..3d8ca8abcc1 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.h
@@ -18,7 +18,7 @@ public:
explicit DocsumStoreDocument(std::unique_ptr<document::Document> document);
~DocsumStoreDocument() 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;
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/i_docsum_store_document.h b/searchsummary/src/vespa/searchsummary/docsummary/i_docsum_store_document.h
index ffd37da4026..a229e98bb4b 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/i_docsum_store_document.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/i_docsum_store_document.h
@@ -10,6 +10,7 @@ namespace vespalib::slime { struct Inserter; }
namespace search::docsummary {
class IJuniperConverter;
+class IStringFieldConverter;
/**
* Interface class providing access to a document retrieved from an IDocsumStore.
@@ -21,7 +22,7 @@ class IDocsumStoreDocument
public:
virtual ~IDocsumStoreDocument() = default;
virtual DocsumStoreFieldValue get_field_value(const vespalib::string& field_name) const = 0;
- virtual void insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter) const = 0;
+ virtual void insert_summary_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter = nullptr) const = 0;
virtual void insert_juniper_field(const vespalib::string& field_name, vespalib::slime::Inserter& inserter, IJuniperConverter& converter) const = 0;
virtual void insert_document_id(vespalib::slime::Inserter& inserter) const = 0;
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
index b3678a94ca7..7266642b18b 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
@@ -335,12 +335,12 @@ SlimeFiller::visit(const ReferenceFieldValue& value)
}
void
-SlimeFiller::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter)
+SlimeFiller::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter)
{
CheckUndefinedValueVisitor check_undefined;
value.accept(check_undefined);
if (!check_undefined.is_undefined()) {
- SlimeFiller visitor(inserter);
+ SlimeFiller visitor(inserter, converter, SlimeFillerFilter::all());
value.accept(visitor);
}
}
@@ -357,12 +357,12 @@ SlimeFiller::insert_summary_field_with_filter(const FieldValue& value, vespalib:
}
void
-SlimeFiller::insert_summary_field_with_field_filter(const document::FieldValue& value, vespalib::slime::Inserter& inserter, const SlimeFillerFilter* filter)
+SlimeFiller::insert_summary_field_with_field_filter(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter, const SlimeFillerFilter* filter)
{
CheckUndefinedValueVisitor check_undefined;
value.accept(check_undefined);
if (!check_undefined.is_undefined()) {
- SlimeFiller visitor(inserter, nullptr, (filter != nullptr) ? filter->begin() : SlimeFillerFilter::all());
+ SlimeFiller visitor(inserter, converter, (filter != nullptr) ? filter->begin() : SlimeFillerFilter::all());
value.accept(visitor);
}
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
index ff71cb7239c..547d2a13ec3 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
@@ -59,13 +59,13 @@ public:
SlimeFillerFilter::Iterator filter);
~SlimeFiller() override;
- static void insert_summary_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter);
+ static void insert_summary_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter = nullptr);
/**
* Insert the given field value, but only the elements that are contained in the matching_elems vector.
*/
static void insert_summary_field_with_filter(const document::FieldValue& value, vespalib::slime::Inserter& inserter, const std::vector<uint32_t>& matching_elems);
- static void insert_summary_field_with_field_filter(const document::FieldValue& value, vespalib::slime::Inserter& inserter, const SlimeFillerFilter* filter);
+ static void insert_summary_field_with_field_filter(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter* converter, const SlimeFillerFilter* filter);
static void insert_juniper_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter& converter);
};