Class: Groonga::Query
- Inherits:
-
Object
- Object
- Groonga::Query
- Defined in:
- ext/rb-grn-query.c,
ext/rb-grn-query.c
Overview
インデックスを用いた検索用のクエリのためのオブジェクト。 Groonga::IndexColumn#searchに渡すことができる。(このクラ スは非推奨で、代わりにGroonga::Expressionを使用すること)
Instance Method Summary collapse
-
#close ⇒ Object
queryが使用しているリソースを開放する。これ以降queryを 使うことはできない。.
-
#closed? ⇒ Boolean
queryが開放済みの場合は
true
を返し、そうでない場合はfalse
を返す。. -
#new(string, options = {}) ⇒ Object
constructor
stringをパースした上で、クエリを作成する。作成されたオ ブジェクトはGroonga::IndexColumn#searchに渡すことで使用す ることができる。.
Constructor Details
#new(string, options = {}) ⇒ Object
stringをパースした上で、クエリを作成する。作成されたオ ブジェクトはGroonga::IndexColumn#searchに渡すことで使用す ることができる。
optionsに指定可能な値は以下の通り。
:context
-
クエリが利用するGroonga::Context。省略すると Groonga::Context.defaultを用いる。
:default_operator
-
演算子の既定値(演算子を省略した場合にどの演算を行うか) を指定する。
- Groonga::Operation::OR
- Groonga::Operation::AND
- Groonga::Operation::BUT
- Groonga::Operation::ADJUST
- Groonga::Operation::AND
-
(FIXME: 挙動の違いを検証する必要性あり?
Groonga::Expressionとの関連性は?)
- Groonga::Operation::OR
:max_expressions
-
検索クエリに指定する式の最大値を指定する。
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 |
# File 'ext/rb-grn-query.c', line 159
static VALUE
rb_grn_query_initialize (int argc, VALUE *argv, VALUE self)
{
RbGrnQuery *rb_grn_query;
grn_ctx *context = NULL;
grn_query *query;
char *query_string;
unsigned int query_string_length;
grn_operator default_operator;
int max_expressions = RB_GRN_QUERY_DEFAULT_MAX_EXPRESSIONS;
VALUE rb_query_string, options, rb_context, rb_default_operator;
VALUE rb_max_expressions;
rb_scan_args(argc, argv, "11", &rb_query_string, &options);
query_string = StringValuePtr(rb_query_string);
query_string_length = RSTRING_LEN(rb_query_string);
rb_grn_scan_options(options,
"context", &rb_context,
"default_operator", &rb_default_operator,
"max_expressions", &rb_max_expressions,
NULL);
context = rb_grn_context_ensure(&rb_context);
default_operator = RVAL2GRNOPERATOR(rb_default_operator);
if (!NIL_P(rb_max_expressions))
max_expressions = NUM2INT(rb_max_expressions);
query = grn_query_open(context, query_string, query_string_length,
default_operator, max_expressions);
rb_grn_context_check(context, rb_ary_new4(argc, argv));
rb_grn_query = ALLOC(RbGrnQuery);
DATA_PTR(self) = rb_grn_query;
rb_grn_query->context = context;
rb_grn_query->query = query;
rb_grn_query->owner = RB_GRN_TRUE;
rb_iv_set(self, "@context", rb_context);
return Qnil;
}
|
Instance Method Details
#close ⇒ Object
queryが使用しているリソースを開放する。これ以降queryを 使うことはできない。
212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'ext/rb-grn-query.c', line 212
static VALUE
rb_grn_query_close (VALUE self)
{
RbGrnQuery *rb_grn_query;
rb_grn_query = SELF(self);
if (rb_grn_query->context && rb_grn_query->query) {
grn_rc rc;
rc = grn_query_close(rb_grn_query->context, rb_grn_query->query);
rb_grn_query->context = NULL;
rb_grn_query->query = NULL;
rb_grn_rc_check(rc, self);
}
return Qnil;
}
|
#closed? ⇒ Boolean
queryが開放済みの場合はtrue
を返し、そうでない場合は false
を返す。
236 237 238 239 240 241 242 243 244 245 246 |
# File 'ext/rb-grn-query.c', line 236
static VALUE
rb_grn_query_closed_p (VALUE self)
{
RbGrnQuery *rb_grn_query;
rb_grn_query = SELF(self);
if (rb_grn_query->context && rb_grn_query->query)
return Qfalse;
else
return Qtrue;
}
|