blob: f5a980533fa65d254d0904e61bcd5baec3439ae7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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;
};
}
|