diff options
Diffstat (limited to 'searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.h')
-rw-r--r-- | searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.h b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.h new file mode 100644 index 00000000000..f5a980533fa --- /dev/null +++ b/searchsummary/src/vespa/searchsummary/docsummary/dynamicteaserdfw.h @@ -0,0 +1,41 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#pragma once + +#include "docsum_field_writer.h" +#include <memory> + +namespace juniper { + class Config; + class Juniper; +} +namespace vespalib::slime { struct Inserter; } + +namespace search::docsummary { + +class IQueryTermFilter; +class IQueryTermFilterFactory; + +class DynamicTeaserDFW : public DocsumFieldWriter +{ +public: + DynamicTeaserDFW(const DynamicTeaserDFW &) = delete; + DynamicTeaserDFW & operator = (const DynamicTeaserDFW &) = delete; + explicit DynamicTeaserDFW(const juniper::Juniper * juniper, const char *fieldName, vespalib::stringref inputField, + const IQueryTermFilterFactory& query_term_filter_factory) ; + ~DynamicTeaserDFW() override; + + bool isGenerated() const override { return false; } + void insertField(uint32_t docid, const IDocsumStoreDocument* doc, GetDocsumsState& state, + vespalib::slime::Inserter &target) const override; + void insert_juniper_field(uint32_t docid, vespalib::stringref input, GetDocsumsState& state, + vespalib::slime::Inserter& inserter) const; +private: + const juniper::Juniper *_juniper; + vespalib::string _input_field_name; + std::unique_ptr<juniper::Config> _juniperConfig; + std::shared_ptr<const IQueryTermFilter> _query_term_filter; +}; + +} + |