diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-09-20 12:21:01 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-09-20 12:21:01 +0200 |
commit | 552589e9caea2cf3a1d3ff14a23e872e2cba6435 (patch) | |
tree | 26c6125811c983831be015aac18a07b7bb518811 | |
parent | 93f0f40704dc6338279f8469a21d992c2c89efc8 (diff) |
Move static member functions from SummaryFieldConverter to SlimeFiller.
10 files changed, 52 insertions, 88 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/documentstoreadapter.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/documentstoreadapter.cpp index a62bd155b87..6d717f7f128 100644 --- a/searchcore/src/vespa/searchcore/proton/docsummary/documentstoreadapter.cpp +++ b/searchcore/src/vespa/searchcore/proton/docsummary/documentstoreadapter.cpp @@ -2,7 +2,6 @@ #include "documentstoreadapter.h" #include <vespa/searchsummary/docsummary/docsum_store_document.h> -#include <vespa/searchsummary/docsummary/summaryfieldconverter.h> #include <vespa/document/fieldvalue/document.h> #include <vespa/document/fieldvalue/stringfieldvalue.h> #include <vespa/eval/eval/value_codec.h> diff --git a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp index f0dd4acfb32..b165542e2e2 100644 --- a/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp +++ b/searchsummary/src/tests/docsummary/matched_elements_filter/matched_elements_filter_test.cpp @@ -22,7 +22,6 @@ #include <vespa/searchsummary/docsummary/matched_elements_filter_dfw.h> #include <vespa/searchsummary/docsummary/resultclass.h> #include <vespa/searchsummary/docsummary/resultconfig.h> -#include <vespa/searchsummary/docsummary/summaryfieldconverter.h> #include <vespa/searchsummary/test/slime_value.h> #include <vespa/vespalib/data/slime/slime.h> #include <vespa/vespalib/gtest/gtest.h> diff --git a/searchsummary/src/vespa/searchsummary/docsummary/CMakeLists.txt b/searchsummary/src/vespa/searchsummary/docsummary/CMakeLists.txt index 51c8afe4250..e69752f3b81 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/CMakeLists.txt +++ b/searchsummary/src/vespa/searchsummary/docsummary/CMakeLists.txt @@ -38,5 +38,4 @@ vespa_add_library(searchsummary_docsummary OBJECT struct_fields_resolver.cpp struct_map_attribute_combiner_dfw.cpp summaryfeaturesdfw.cpp - summaryfieldconverter.cpp ) diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp index 35db818ac58..f701b4796c1 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsum_store_document.cpp @@ -2,7 +2,7 @@ #include "docsum_store_document.h" #include "annotation_converter.h" -#include "summaryfieldconverter.h" +#include "slime_filler.h" #include <vespa/document/base/exceptions.h> #include <vespa/document/datatype/datatype.h> #include <vespa/document/fieldvalue/document.h> @@ -41,7 +41,7 @@ DocsumStoreDocument::insert_summary_field(const vespalib::string& field_name, ve { auto field_value = get_field_value(field_name); if (field_value) { - SummaryFieldConverter::insert_summary_field(*field_value, inserter); + SlimeFiller::insert_summary_field(*field_value, inserter); } } @@ -51,7 +51,7 @@ DocsumStoreDocument::insert_juniper_field(const vespalib::string& field_name, ve auto field_value = get_field_value(field_name); if (field_value) { AnnotationConverter stacked_converter(converter); - SummaryFieldConverter::insert_juniper_field(*field_value, inserter, stacked_converter); + SlimeFiller::insert_juniper_field(*field_value, inserter, stacked_converter); } } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp index 1a029cfd16f..4f74ffd894c 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/matched_elements_filter_dfw.cpp @@ -3,8 +3,8 @@ #include "matched_elements_filter_dfw.h" #include "docsumstate.h" #include "i_docsum_store_document.h" +#include "slime_filler.h" #include "struct_fields_resolver.h" -#include "summaryfieldconverter.h" #include <vespa/document/fieldvalue/document.h> #include <vespa/document/fieldvalue/literalfieldvalue.h> #include <vespa/searchcommon/attribute/iattributecontext.h> @@ -68,7 +68,7 @@ MatchedElementsFilterDFW::insertField(uint32_t docid, const IDocsumStoreDocument { auto field_value = doc->get_field_value(_input_field_name); if (field_value) { - SummaryFieldConverter::insert_summary_field_with_filter(*field_value, target, get_matching_elements(docid, state)); + SlimeFiller::insert_summary_field_with_filter(*field_value, target, get_matching_elements(docid, state)); } } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp index 94774c1bee4..06cb363b61f 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "slime_filler.h" +#include "check_undefined_value_visitor.h" #include "i_juniper_converter.h" #include "i_string_field_converter.h" #include "resultconfig.h" @@ -341,4 +342,37 @@ SlimeFiller::visit(const ReferenceFieldValue& value) : vespalib::string())); } +void +SlimeFiller::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter) +{ + CheckUndefinedValueVisitor check_undefined; + value.accept(check_undefined); + if (!check_undefined.is_undefined()) { + SlimeFiller visitor(inserter); + value.accept(visitor); + } +} + +void +SlimeFiller::insert_summary_field_with_filter(const FieldValue& value, vespalib::slime::Inserter& inserter, const std::vector<uint32_t>& matching_elems) +{ + CheckUndefinedValueVisitor check_undefined; + value.accept(check_undefined); + if (!check_undefined.is_undefined()) { + SlimeFiller visitor(inserter, &matching_elems); + value.accept(visitor); + } +} + +void +SlimeFiller::insert_juniper_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter& converter) +{ + CheckUndefinedValueVisitor check_undefined; + value.accept(check_undefined); + if (!check_undefined.is_undefined()) { + SlimeFiller visitor(inserter, &converter, nullptr); + value.accept(visitor); + } +} + } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h index a81a20814c4..2f924de8af4 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h @@ -6,6 +6,8 @@ #include <cstdint> #include <vector> +namespace document { class FieldValue; } + namespace vespalib::slime { struct Inserter; } namespace search::docsummary { @@ -55,6 +57,14 @@ public: SlimeFiller(vespalib::slime::Inserter& inserter, const std::vector<uint32_t>* matching_elems); SlimeFiller(vespalib::slime::Inserter& inserter, IStringFieldConverter* string_converter, const SlimeFillerFilter* filter); ~SlimeFiller() override; + + static void insert_summary_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter); + + /** + * 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_juniper_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter& converter); }; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp deleted file mode 100644 index dd5a59e46af..00000000000 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#include "summaryfieldconverter.h" -#include "check_undefined_value_visitor.h" -#include "slime_filler.h" -#include <vespa/document/fieldvalue/fieldvalue.h> - -using document::FieldValue; - -namespace search::docsummary { - -void -SummaryFieldConverter::insert_summary_field(const FieldValue& value, vespalib::slime::Inserter& inserter) -{ - CheckUndefinedValueVisitor check_undefined; - value.accept(check_undefined); - if (!check_undefined.is_undefined()) { - SlimeFiller visitor(inserter); - value.accept(visitor); - } -} - -void -SummaryFieldConverter::insert_summary_field_with_filter(const FieldValue& value, vespalib::slime::Inserter& inserter, const std::vector<uint32_t>& matching_elems) -{ - CheckUndefinedValueVisitor check_undefined; - value.accept(check_undefined); - if (!check_undefined.is_undefined()) { - SlimeFiller visitor(inserter, &matching_elems); - value.accept(visitor); - } -} - -void -SummaryFieldConverter::insert_juniper_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter& converter) -{ - CheckUndefinedValueVisitor check_undefined; - value.accept(check_undefined); - if (!check_undefined.is_undefined()) { - SlimeFiller visitor(inserter, &converter, nullptr); - value.accept(visitor); - } -} - -} diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h deleted file mode 100644 index ce3bf80b365..00000000000 --- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.h +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - -#pragma once - -#include <cstdint> -#include <vector> - -namespace document { class FieldValue; } - -namespace vespalib::slime { struct Inserter; } - -namespace search::docsummary { - -class IStringFieldConverter; - -/** - * This class converts a summary field for docsum fetching. - */ -class SummaryFieldConverter -{ -public: - static void insert_summary_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter); - /** - * 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_juniper_field(const document::FieldValue& value, vespalib::slime::Inserter& inserter, IStringFieldConverter& converter); -}; - -} - diff --git a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp index ad054aadd9c..7fbef6307b2 100644 --- a/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp +++ b/streamingvisitors/src/vespa/vsm/vsm/docsumfilter.cpp @@ -8,7 +8,6 @@ #include <vespa/searchsummary/docsummary/i_string_field_converter.h> #include <vespa/searchsummary/docsummary/slime_filler.h> #include <vespa/searchsummary/docsummary/slime_filler_filter.h> -#include <vespa/searchsummary/docsummary/summaryfieldconverter.h> #include <vespa/document/base/exceptions.h> #include <vespa/document/datatype/datatype.h> #include <vespa/document/fieldvalue/stringfieldvalue.h> @@ -242,7 +241,7 @@ DocsumStoreVsmDocument::insert_summary_field(const vespalib::string& field_name, auto value(field.getDataType().createFieldValue()); if (value) { if (_document->getValue(field, *value)) { - SummaryFieldConverter::insert_summary_field(*value, inserter); + SlimeFiller::insert_summary_field(*value, inserter); } } } catch (document::FieldNotFoundException&) { @@ -267,7 +266,7 @@ DocsumStoreVsmDocument::insert_juniper_field(const vespalib::string& field_name, // Markup for juniper has already been added due to FLATTENJUNIPER command in vsm summary config. } SnippetModifierJuniperConverter string_converter(converter, modifier); - SummaryFieldConverter::insert_juniper_field(*field_value, inserter, string_converter); + SlimeFiller::insert_juniper_field(*field_value, inserter, string_converter); } } @@ -445,7 +444,7 @@ DocsumFilter::insert_summary_field(uint32_t entry_idx, const Document& doc, vesp const DocsumFieldSpec::FieldIdentifier & fieldId = field_spec.getInputFields()[0]; const document::FieldValue* field_value = doc.getField(fieldId.getId()); if (field_value != nullptr) { - SummaryFieldConverter::insert_summary_field(*field_value, inserter); + SlimeFiller::insert_summary_field(*field_value, inserter); } } else if (field_spec.getInputFields().empty() && field_spec.getCommand() == VsmsummaryConfig::Fieldmap::Command::NONE) { } else { |