aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h
blob: 4199630a94d1d7861b7c7b310a0504337e188cad (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
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

#include <vespa/searchsummary/docsummary/docsum_field_writer.h>
#include <vespa/searchlib/query/query_normalization.h>

namespace vsm {

/*
 * Class for writing string field values from document as
 * arrays containing the tokens. Tokenization is performed
 * on the fly using the exact_match and normalize_mode settings.
 */
class TokensDFW : public search::docsummary::DocsumFieldWriter
{
private:
    vespalib::string            _input_field_name;
    bool                        _exact_match;
    search::Normalizing         _normalize_mode;

public:
    explicit TokensDFW(const vespalib::string& input_field_name, bool exact_match, search::Normalizing normalize_mode);
    ~TokensDFW() override;
    bool isGenerated() const override;
    void insertField(uint32_t docid, const search::docsummary::IDocsumStoreDocument* doc, search::docsummary::GetDocsumsState& state, vespalib::slime::Inserter& target) const override;
};

}