aboutsummaryrefslogtreecommitdiffstats
path: root/streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h
diff options
context:
space:
mode:
authorGeir Storli <geirst@vespa.ai>2024-03-27 16:16:56 +0100
committerGitHub <noreply@github.com>2024-03-27 16:16:56 +0100
commit45e8c0c2b2ab7b3ac9d8e6a8f174b08ac15b342e (patch)
treeb886a2b83b89265239fc22f7a78fda01082832d6 /streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h
parentaa19da6beecdf82393af0f99a12940fb9db92bd9 (diff)
parent086944ee64cb439c336d8d94d6af1c253a22697b (diff)
Merge pull request #30747 from vespa-engine/toregge/add-streaming-mode-version-of-tokens-dfw
Add streaming mode version of tokens document field writer.
Diffstat (limited to 'streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h')
-rw-r--r--streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h b/streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h
new file mode 100644
index 00000000000..4199630a94d
--- /dev/null
+++ b/streamingvisitors/src/vespa/vsm/vsm/tokens_dfw.h
@@ -0,0 +1,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;
+};
+
+}