aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-09-12 17:00:02 +0200
committerGitHub <noreply@github.com>2022-09-12 17:00:02 +0200
commitcf494ca75f3dc3bd66ef90a8438a20a5dd447452 (patch)
tree903de92d8fbecc59e6ca6f445c22ef01d0d696c6
parent5f654b66b533923fb80cbe984f7dbbb694b261d6 (diff)
parent94c477290475ed4da644acd1a0db52d5ddfeafdb (diff)
Merge pull request #24022 from vespa-engine/toregge/handle-juniper-for-array-of-stringv8.51.18
Handle juniper callbacks for array of string.
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp2
4 files changed, 7 insertions, 5 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
index 456af5a5dd5..4fb20bb1458 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.cpp
@@ -97,6 +97,8 @@ DynamicTeaserDFW::insert_juniper_field(uint32_t docid, vespalib::stringref input
if (teaser != nullptr) {
inserter.insertString({teaser->Text(), teaser->Length()});
+ } else {
+ inserter.insertString({});
}
}
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
index 5e3bc22aa69..725ebff1f77 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.cpp
@@ -105,11 +105,11 @@ SlimeFiller::SlimeFiller(Inserter& inserter, bool tokenize, const std::vector<ui
{
}
-SlimeFiller::SlimeFiller(Inserter& inserter, bool tokenize, IJuniperConverter& juniper_converter)
+SlimeFiller::SlimeFiller(Inserter& inserter, bool tokenize, IJuniperConverter* juniper_converter)
: _inserter(inserter),
_tokenize(tokenize),
_matching_elems(nullptr),
- _juniper_converter(&juniper_converter)
+ _juniper_converter(juniper_converter)
{
}
@@ -163,7 +163,7 @@ SlimeFiller::visit(const ArrayFieldValue& value)
}
Cursor& a = _inserter.insertArray();
ArrayInserter ai(a);
- SlimeFiller conv(ai, _tokenize);
+ SlimeFiller conv(ai, _tokenize, _juniper_converter);
if (filter_matching_elements()) {
for (uint32_t id_to_keep : (*_matching_elems)) {
value[id_to_keep].accept(conv);
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
index 4627c1be3c7..ebade8aa711 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
+++ b/searchsummary/src/vespa/searchsummary/docsummary/slime_filler.h
@@ -52,7 +52,7 @@ class SlimeFiller : public document::ConstFieldValueVisitor {
public:
SlimeFiller(vespalib::slime::Inserter& inserter, bool tokenize);
SlimeFiller(vespalib::slime::Inserter& inserter, bool tokenize, const std::vector<uint32_t>* matching_elems);
- SlimeFiller(vespalib::slime::Inserter& inserter, bool tokenize, IJuniperConverter& juniper_converter);
+ SlimeFiller(vespalib::slime::Inserter& inserter, bool tokenize, IJuniperConverter* juniper_converter);
~SlimeFiller() override;
};
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
index 4679c8d096c..1a21c1d3eab 100644
--- a/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
+++ b/searchsummary/src/vespa/searchsummary/docsummary/summaryfieldconverter.cpp
@@ -230,7 +230,7 @@ SummaryFieldConverter::insert_juniper_field(const document::FieldValue& value, v
CheckUndefinedValueVisitor check_undefined;
value.accept(check_undefined);
if (!check_undefined.is_undefined()) {
- SlimeFiller visitor(inserter, tokenize, converter);
+ SlimeFiller visitor(inserter, tokenize, &converter);
value.accept(visitor);
}
}