Groonga
Loading...
Searching...
No Matches
selector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2009-2018 Brazil
3 Copyright (C) 2020-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#include <groonga.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28typedef grn_rc grn_selector_func(grn_ctx *ctx, grn_obj *table, grn_obj *index,
29 int nargs, grn_obj **args,
30 grn_obj *res, grn_operator op);
31
33 grn_selector_func selector);
35 grn_obj *proc,
36 grn_operator selector_op);
38 grn_obj *proc);
39
40typedef struct _grn_selector_data grn_selector_data;
41
46 grn_selector_data *data);
49 grn_selector_data *data);
52 grn_selector_data *data);
55 grn_selector_data *data);
59 size_t *n_args);
60GRN_API float
62 grn_selector_data *data);
66 grn_obj *result_set);
69 grn_selector_data *data);
72 grn_selector_data *data);
73GRN_API bool
75 grn_selector_data *data);
76
79 const char *name,
80 grn_obj *value,
81 const char *tag,
82 void *data);
83
86 const char *name,
87 grn_obj *value,
88 const char *tag,
89 void *data);
90
93 const char *name,
94 grn_obj *value,
95 const char *tag,
96 void *data);
97
98#define grn_selector_data_parse_options(ctx, \
99 data, \
100 options, \
101 tag, \
102 ...) \
103 grn_proc_options_parse((ctx), \
104 (options), \
105 (tag), \
106 "score_column", \
107 GRN_PROC_OPTION_VALUE_FUNC, \
108 grn_selector_data_parse_score_column_option_value, \
109 (data), \
110 "tags", \
111 GRN_PROC_OPTION_VALUE_FUNC, \
112 grn_selector_data_parse_tags_option_value, \
113 (data), \
114 "tags_column", \
115 GRN_PROC_OPTION_VALUE_FUNC, \
116 grn_selector_data_parse_tags_column_option_value, \
117 (data), \
118 __VA_ARGS__)
119
120GRN_API bool
122 grn_selector_data *data);
123
124GRN_API bool
126 grn_selector_data *data);
127
130 grn_selector_data *data,
131 grn_obj *index,
132 grn_id token_id,
133 double additional_score);
134
135#ifdef __cplusplus
136}
137#endif
grn_rc
Definition groonga.h:61
uint32_t grn_id
Definition groonga.h:44
#define GRN_API
Definition groonga.h:39
grn_operator
Definition groonga.h:1149
GRN_API grn_rc grn_proc_set_selector_operator(grn_ctx *ctx, grn_obj *proc, grn_operator selector_op)
GRN_API grn_operator grn_proc_get_selector_operator(grn_ctx *ctx, grn_obj *proc)
struct _grn_selector_data grn_selector_data
Definition selector.h:40
GRN_API grn_obj ** grn_selector_data_get_args(grn_ctx *ctx, grn_selector_data *data, size_t *n_args)
GRN_API grn_rc grn_selector_data_on_token_found(grn_ctx *ctx, grn_selector_data *data, grn_obj *index, grn_id token_id, double additional_score)
GRN_API grn_rc grn_proc_set_selector(grn_ctx *ctx, grn_obj *proc, grn_selector_func selector)
GRN_API bool grn_selector_data_have_score_column(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_obj * grn_selector_data_get_expr(grn_ctx *ctx, grn_selector_data *data)
GRN_API float grn_selector_data_get_weight_factor(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_rc grn_selector_data_set_result_set(grn_ctx *ctx, grn_selector_data *data, grn_obj *result_set)
GRN_API grn_selector_data * grn_selector_data_get(grn_ctx *ctx)
GRN_API grn_rc grn_selector_data_parse_tags_option_value(grn_ctx *ctx, const char *name, grn_obj *value, const char *tag, void *data)
GRN_API grn_obj * grn_selector_data_get_index(grn_ctx *ctx, grn_selector_data *data)
GRN_API bool grn_selector_data_have_tags_column(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_obj * grn_selector_data_get_selector(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_operator grn_selector_data_get_op(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_rc grn_selector_data_parse_score_column_option_value(grn_ctx *ctx, const char *name, grn_obj *value, const char *tag, void *data)
GRN_API grn_obj * grn_selector_data_get_result_set(grn_ctx *ctx, grn_selector_data *data)
grn_rc grn_selector_func(grn_ctx *ctx, grn_obj *table, grn_obj *index, int nargs, grn_obj **args, grn_obj *res, grn_operator op)
Definition selector.h:28
GRN_API grn_rc grn_selector_data_parse_tags_column_option_value(grn_ctx *ctx, const char *name, grn_obj *value, const char *tag, void *data)
GRN_API bool grn_selector_data_get_can_swap_result_set(grn_ctx *ctx, grn_selector_data *data)
GRN_API grn_obj * grn_selector_data_get_table(grn_ctx *ctx, grn_selector_data *data)
Definition groonga.h:351
Definition groonga.h:919