Groonga
Loading...
Searching...
No Matches
token.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2014-2018 Brazil
3 Copyright (C) 2018-2024 Sutou Kouhei <kou@clear-code.com>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18*/
19
20#pragma once
21
22#ifdef __cplusplus
23extern "C" {
24#endif /* __cplusplus */
25
26/*
27 * grn_tokenize_mode describes propose for tokenization.
28 *
29 * `GRN_TOKENIZE_GET`: Tokenize for search.
30 *
31 * `GRN_TOKENIZE_ADD`: Tokenize for adding token to index.
32 *
33 * `GRN_TOKENIZE_DELETE`: Tokenize for deleting token from index.
34 *
35 * @since 4.0.8
36 */
43
44/*
45 grn_token_mode describes propose for tokenization.
46
47 `GRN_TOKEN_GET`: Tokenization for search.
48
49 `GRN_TOKEN_ADD`: Tokenization for adding token to index.
50
51 `GRN_TOKEN_DEL`: Tokenization for deleting token from index.
52
53 @since 4.0.7
54 @deprecated since 4.0.8. Use grn_tokenize_mode instead.
55 */
57
58#define GRN_TOKEN_GET GRN_TOKENIZE_GET
59#define GRN_TOKEN_ADD GRN_TOKENIZE_ADD
60#define GRN_TOKEN_DEL GRN_TOKENIZE_DELETE
61
62/*
63 * grn_token_status is a flag set for tokenizer status codes.
64 * If a document or query contains no tokens, push an empty string with
65 * GRN_TOKEN_LAST as a token.
66 *
67 * @since 4.0.8
68 */
69typedef uint32_t grn_token_status;
70
71/*
72 * GRN_TOKEN_CONTINUE means that the next token is not the last one.
73 *
74 * @since 4.0.8
75 */
76#define GRN_TOKEN_CONTINUE (0)
77/*
78 * GRN_TOKEN_LAST means that the next token is the last one.
79 *
80 * @since 4.0.8
81 */
82#define GRN_TOKEN_LAST (0x01L << 0)
83/*
84 * GRN_TOKEN_OVERLAP means that ...
85 *
86 * @since 4.0.8
87 */
88#define GRN_TOKEN_OVERLAP (0x01L << 1)
89/*
90 * GRN_TOKEN_UNMATURED means that ...
91 *
92 * @since 4.0.8
93 */
94#define GRN_TOKEN_UNMATURED (0x01L << 2)
95/*
96 * GRN_TOKEN_REACH_END means that ...
97 *
98 * @since 4.0.8
99 */
100#define GRN_TOKEN_REACH_END (0x01L << 3)
101/*
102 * GRN_TOKEN_SKIP means that the token is skipped
103 *
104 * @since 4.0.8
105 */
106#define GRN_TOKEN_SKIP (0x01L << 4)
107/*
108 * GRN_TOKEN_SKIP_WITH_POSITION means that the token and postion is skipped
109 *
110 * @since 4.0.8
111 */
112#define GRN_TOKEN_SKIP_WITH_POSITION (0x01L << 5)
113/*
114 * GRN_TOKEN_FORCE_PREFIX means that the token is used common prefix search
115 *
116 * @since 4.0.8
117 */
118#define GRN_TOKEN_FORCE_PREFIX (0x01L << 6)
119/*
120 * GRN_TOKEN_KEEP_ORIGINAL means that the original token of the token is
121 * also used. This is for token filter.
122 *
123 * @since 11.0.3
124 */
125#define GRN_TOKEN_KEEP_ORIGINAL (0x01L << 7)
126
127typedef struct _grn_token grn_token;
128
131GRN_API const char *
132grn_token_get_data_raw(grn_ctx *ctx, grn_token *token, size_t *length);
135 grn_token *token,
136 const char *str_ptr,
137 int str_length);
150 grn_token *token,
151 grn_token_status status);
152GRN_API uint64_t
155grn_token_set_source_offset(grn_ctx *ctx, grn_token *token, uint64_t offset);
156GRN_API uint32_t
159grn_token_set_source_length(grn_ctx *ctx, grn_token *token, uint32_t length);
160GRN_API uint32_t
164 grn_token *token,
165 uint32_t length);
166GRN_API bool
169grn_token_set_overlap(grn_ctx *ctx, grn_token *token, bool have_overlap);
170
173GRN_API bool
177GRN_API uint32_t
180grn_token_set_position(grn_ctx *ctx, grn_token *token, uint32_t position);
181GRN_API float
184grn_token_set_weight(grn_ctx *ctx, grn_token *token, float weight);
185
186#ifdef __cplusplus
187} /* extern "C" */
188#endif /* __cplusplus */
grn_rc
Definition groonga.h:61
uint32_t grn_id
Definition groonga.h:44
#define GRN_API
Definition groonga.h:39
Definition groonga.h:351
Definition groonga.h:919
grn_tokenize_mode grn_token_mode
Definition token.h:56
GRN_API grn_rc grn_token_set_force_prefix_search(grn_ctx *ctx, grn_token *token, bool force)
GRN_API grn_rc grn_token_add_status(grn_ctx *ctx, grn_token *token, grn_token_status status)
GRN_API bool grn_token_have_overlap(grn_ctx *ctx, grn_token *token)
GRN_API grn_obj * grn_token_get_metadata(grn_ctx *ctx, grn_token *token)
GRN_API grn_rc grn_token_set_domain(grn_ctx *ctx, grn_token *token, grn_id domain)
GRN_API uint32_t grn_token_get_position(grn_ctx *ctx, grn_token *token)
GRN_API bool grn_token_get_force_prefix_search(grn_ctx *ctx, grn_token *token)
GRN_API grn_token_status grn_token_get_status(grn_ctx *ctx, grn_token *token)
GRN_API grn_rc grn_token_set_source_offset(grn_ctx *ctx, grn_token *token, uint64_t offset)
uint32_t grn_token_status
Definition token.h:69
GRN_API const char * grn_token_get_data_raw(grn_ctx *ctx, grn_token *token, size_t *length)
GRN_API grn_rc grn_token_set_source_first_character_length(grn_ctx *ctx, grn_token *token, uint32_t length)
GRN_API uint32_t grn_token_get_source_length(grn_ctx *ctx, grn_token *token)
GRN_API grn_obj * grn_token_get_data(grn_ctx *ctx, grn_token *token)
GRN_API grn_rc grn_token_set_overlap(grn_ctx *ctx, grn_token *token, bool have_overlap)
GRN_API float grn_token_get_weight(grn_ctx *ctx, grn_token *token)
GRN_API uint32_t grn_token_get_source_first_character_length(grn_ctx *ctx, grn_token *token)
GRN_API grn_rc grn_token_set_status(grn_ctx *ctx, grn_token *token, grn_token_status status)
GRN_API grn_id grn_token_get_domain(grn_ctx *ctx, grn_token *token)
struct _grn_token grn_token
Definition token.h:127
GRN_API grn_rc grn_token_set_data(grn_ctx *ctx, grn_token *token, const char *str_ptr, int str_length)
GRN_API grn_rc grn_token_remove_status(grn_ctx *ctx, grn_token *token, grn_token_status status)
grn_tokenize_mode
Definition token.h:37
@ GRN_TOKENIZE_GET
Definition token.h:38
@ GRN_TOKENIZE_ONLY
Definition token.h:41
@ GRN_TOKENIZE_ADD
Definition token.h:39
@ GRN_TOKENIZE_DELETE
Definition token.h:40
GRN_API grn_rc grn_token_set_source_length(grn_ctx *ctx, grn_token *token, uint32_t length)
GRN_API uint64_t grn_token_get_source_offset(grn_ctx *ctx, grn_token *token)
GRN_API grn_rc grn_token_set_position(grn_ctx *ctx, grn_token *token, uint32_t position)
GRN_API grn_rc grn_token_set_weight(grn_ctx *ctx, grn_token *token, float weight)