rroonga 2.0.4 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +21 -2
- data/bin/grndump +3 -2
- data/ext/groonga/extconf.rb +1 -6
- data/ext/groonga/rb-grn-array.c +58 -31
- data/ext/groonga/rb-grn-column.c +220 -148
- data/ext/groonga/rb-grn-context.c +46 -32
- data/ext/groonga/rb-grn-database.c +102 -90
- data/ext/groonga/rb-grn-double-array-trie.c +205 -163
- data/ext/groonga/rb-grn-encoding-support.c +2 -3
- data/ext/groonga/rb-grn-encoding.c +13 -8
- data/ext/groonga/rb-grn-exception.c +1 -1
- data/ext/groonga/rb-grn-expression.c +110 -133
- data/ext/groonga/rb-grn-fix-size-column.c +5 -4
- data/ext/groonga/rb-grn-geo-point.c +55 -0
- data/ext/groonga/rb-grn-hash.c +120 -82
- data/ext/groonga/rb-grn-index-column.c +66 -70
- data/ext/groonga/rb-grn-index-cursor.c +3 -0
- data/ext/groonga/rb-grn-logger.c +33 -51
- data/ext/groonga/rb-grn-object.c +2 -0
- data/ext/groonga/rb-grn-operator.c +1 -1
- data/ext/groonga/rb-grn-patricia-trie.c +287 -232
- data/ext/groonga/rb-grn-plugin.c +11 -14
- data/ext/groonga/rb-grn-snippet.c +37 -54
- data/ext/groonga/rb-grn-table-cursor-key-support.c +3 -3
- data/ext/groonga/rb-grn-table-cursor.c +8 -6
- data/ext/groonga/rb-grn-table-key-support.c +22 -29
- data/ext/groonga/rb-grn-table.c +355 -279
- data/ext/groonga/rb-grn-type.c +18 -25
- data/ext/groonga/rb-grn-utils.c +77 -7
- data/ext/groonga/rb-grn-variable-size-column.c +12 -20
- data/ext/groonga/rb-grn-view.c +56 -51
- data/ext/groonga/rb-grn.h +28 -1
- data/ext/groonga/rb-groonga.c +1 -0
- data/lib/groonga.rb +2 -0
- data/lib/groonga/command.rb +3 -1
- data/lib/groonga/database.rb +27 -0
- data/lib/groonga/dumper.rb +96 -17
- data/lib/groonga/geo-point.rb +216 -0
- data/lib/groonga/schema.rb +29 -46
- data/rroonga-build.rb +1 -1
- data/rroonga.gemspec +90 -0
- data/test/groonga-test-utils.rb +168 -0
- data/test/run-test.rb +60 -0
- data/test/test-accessor.rb +36 -0
- data/test/test-array.rb +146 -0
- data/test/test-column.rb +350 -0
- data/test/test-command-select.rb +181 -0
- data/test/test-context.rb +130 -0
- data/test/test-database-dumper.rb +259 -0
- data/test/test-database.rb +173 -0
- data/test/test-double-array-trie.rb +189 -0
- data/test/test-encoding.rb +33 -0
- data/test/test-exception.rb +230 -0
- data/test/test-expression-builder.rb +602 -0
- data/test/test-expression.rb +134 -0
- data/test/test-fix-size-column.rb +77 -0
- data/test/test-geo-point.rb +190 -0
- data/test/test-gqtp.rb +70 -0
- data/test/test-hash.rb +367 -0
- data/test/test-index-column.rb +180 -0
- data/test/test-index-cursor.rb +123 -0
- data/test/test-logger.rb +37 -0
- data/test/test-pagination.rb +249 -0
- data/test/test-patricia-trie.rb +440 -0
- data/test/test-plugin.rb +35 -0
- data/test/test-procedure.rb +37 -0
- data/test/test-query-log.rb +258 -0
- data/test/test-record.rb +577 -0
- data/test/test-remote.rb +63 -0
- data/test/test-schema-create-table.rb +267 -0
- data/test/test-schema-dumper.rb +235 -0
- data/test/test-schema-type.rb +208 -0
- data/test/test-schema-view.rb +90 -0
- data/test/test-schema.rb +886 -0
- data/test/test-snippet.rb +130 -0
- data/test/test-table-dumper.rb +353 -0
- data/test/test-table-offset-and-limit.rb +100 -0
- data/test/test-table-select-mecab.rb +80 -0
- data/test/test-table-select-normalize.rb +57 -0
- data/test/test-table-select-weight.rb +123 -0
- data/test/test-table-select.rb +191 -0
- data/test/test-table-traverse.rb +304 -0
- data/test/test-table.rb +711 -0
- data/test/test-type.rb +79 -0
- data/test/test-variable-size-column.rb +147 -0
- data/test/test-variable.rb +28 -0
- data/test/test-vector-column.rb +76 -0
- data/test/test-version.rb +61 -0
- data/test/test-view.rb +72 -0
- metadata +330 -202
@@ -96,39 +96,12 @@ rb_grn_index_column_deconstruct (RbGrnIndexColumn *rb_grn_index_column,
|
|
96
96
|
}
|
97
97
|
|
98
98
|
/*
|
99
|
-
* call-seq:
|
100
|
-
* column[id] = value
|
101
|
-
* column[id] = options
|
102
|
-
*
|
103
99
|
* IDが _id_ であるレコードを高速に全文検索するため転置索引を作
|
104
100
|
* 成する。多くの場合、Groonga::Table#define_index_columnで
|
105
101
|
* +:source+ オプションを指定することにより、自動的に全文検索
|
106
102
|
* 用の索引は更新されるので、明示的にこのメソッドを使うこと
|
107
103
|
* は少ない。
|
108
104
|
*
|
109
|
-
* _value_ には文字列を指定する。
|
110
|
-
*
|
111
|
-
* _options_ を指定することにより、より索引の作成を制御できる。
|
112
|
-
* @param [::Hash] options The name and value
|
113
|
-
* pairs. Omitted names are initialized as the default value
|
114
|
-
* @option options :section The section
|
115
|
-
*
|
116
|
-
* 段落番号を指定する。省略した場合は1を指定したとみなされ
|
117
|
-
* る。
|
118
|
-
* Groonga::Table#define_index_columnで
|
119
|
-
* <tt>{:with_section => true}</tt>を指定していなければい
|
120
|
-
* けない。
|
121
|
-
*
|
122
|
-
* @option options :old_value The old_value
|
123
|
-
*
|
124
|
-
* 以前の値を指定する。省略した場合は現在の値が用いられる。
|
125
|
-
* 通常は指定する必要はない。
|
126
|
-
*
|
127
|
-
* @option options :value The value
|
128
|
-
* 新しい値を指定する。 _value_ を指定した場合と _options_ で
|
129
|
-
* <tt>{:value => value}</tt>を指定した場合は同じ動作とな
|
130
|
-
* る。
|
131
|
-
*
|
132
105
|
* @example 記事の段落毎に索引を作成する。
|
133
106
|
* articles = Groonga::Array.create(:name => "<articles>")
|
134
107
|
* articles.define_column("title", "ShortText")
|
@@ -163,6 +136,27 @@ rb_grn_index_column_deconstruct (RbGrnIndexColumn *rb_grn_index_column,
|
|
163
136
|
* content_index.search("エンジン").collect do |record|
|
164
137
|
* p record.key["title"] # -> "groonga"
|
165
138
|
* end
|
139
|
+
*
|
140
|
+
* @overload []=(id, value)
|
141
|
+
* @param [String] value 新しい値
|
142
|
+
* @overload []=(id, options)
|
143
|
+
* _options_ を指定することにより、 _value_ を指定したときよりも索引の作
|
144
|
+
* 成を制御できる。
|
145
|
+
* @param [::Hash] options The name and value
|
146
|
+
* pairs. Omitted names are initialized as the default value
|
147
|
+
* @option options :section
|
148
|
+
* 段落番号を指定する。省略した場合は1を指定したとみなされ
|
149
|
+
* る。
|
150
|
+
* Groonga::Table#define_index_columnで
|
151
|
+
* <tt>{:with_section => true}</tt>を指定していなければい
|
152
|
+
* けない。
|
153
|
+
* @option options :old_value
|
154
|
+
* 以前の値を指定する。省略した場合は現在の値が用いられる。
|
155
|
+
* 通常は指定する必要はない。
|
156
|
+
* @option options :value
|
157
|
+
* 新しい値を指定する。 _value_ を指定した場合と _options_ で
|
158
|
+
* <tt>{:value => value}</tt>を指定した場合は同じ動作とな
|
159
|
+
* る。
|
166
160
|
*/
|
167
161
|
static VALUE
|
168
162
|
rb_grn_index_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
|
@@ -226,10 +220,11 @@ rb_grn_index_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
|
|
226
220
|
}
|
227
221
|
|
228
222
|
/*
|
229
|
-
* call-seq:
|
230
|
-
* column.sources -> Groonga::Columnの配列
|
231
|
-
*
|
232
223
|
* インデックス対象となっているカラムの配列を返す。
|
224
|
+
*
|
225
|
+
* @overload sources
|
226
|
+
* @return [::Array<Groonga::Column>] インデックス対象となっている
|
227
|
+
* {Groonga::Column}の配列
|
233
228
|
*/
|
234
229
|
static VALUE
|
235
230
|
rb_grn_index_column_get_sources (VALUE self)
|
@@ -240,6 +235,7 @@ rb_grn_index_column_get_sources (VALUE self)
|
|
240
235
|
grn_id *source_ids;
|
241
236
|
VALUE rb_sources;
|
242
237
|
int i, n;
|
238
|
+
VALUE exception;
|
243
239
|
|
244
240
|
rb_grn_index_column_deconstruct(SELF(self), &column, &context,
|
245
241
|
NULL, NULL,
|
@@ -258,6 +254,12 @@ rb_grn_index_column_get_sources (VALUE self)
|
|
258
254
|
VALUE rb_source;
|
259
255
|
|
260
256
|
source = grn_ctx_at(context, *source_ids);
|
257
|
+
exception = rb_grn_context_to_exception(context, self);
|
258
|
+
if (!NIL_P(exception)) {
|
259
|
+
grn_obj_unlink(context, &sources);
|
260
|
+
rb_exc_raise(exception);
|
261
|
+
}
|
262
|
+
|
261
263
|
rb_source = GRNOBJECT2RVAL(Qnil, context, source, GRN_FALSE);
|
262
264
|
rb_ary_push(rb_sources, rb_source);
|
263
265
|
source_ids++;
|
@@ -333,10 +335,10 @@ resolve_source_id (grn_ctx *context, grn_obj *column, grn_id range_id,
|
|
333
335
|
}
|
334
336
|
|
335
337
|
/*
|
336
|
-
* call-seq:
|
337
|
-
* column.sources = Groonga::Columnの配列
|
338
|
-
*
|
339
338
|
* インデックス対象となる複数のカラムを配列で設定する。
|
339
|
+
*
|
340
|
+
* @overload sources=(columns)
|
341
|
+
* @param [::Array<Groonga::Column>] columns インデックス対象となるカラムの配列
|
340
342
|
*/
|
341
343
|
static VALUE
|
342
344
|
rb_grn_index_column_set_sources (VALUE self, VALUE rb_sources)
|
@@ -381,10 +383,10 @@ rb_grn_index_column_set_sources (VALUE self, VALUE rb_sources)
|
|
381
383
|
}
|
382
384
|
|
383
385
|
/*
|
384
|
-
* call-seq:
|
385
|
-
* column.source = Groonga::Column
|
386
|
-
*
|
387
386
|
* インデックス対象となるカラムを設定する。
|
387
|
+
*
|
388
|
+
* @overload source=(column)
|
389
|
+
* @param [Groonga::Column] column インデックス対象とするカラム
|
388
390
|
*/
|
389
391
|
static VALUE
|
390
392
|
rb_grn_index_column_set_source (VALUE self, VALUE rb_source)
|
@@ -396,43 +398,37 @@ rb_grn_index_column_set_source (VALUE self, VALUE rb_source)
|
|
396
398
|
}
|
397
399
|
|
398
400
|
/*
|
399
|
-
* Document-method: search
|
400
|
-
*
|
401
|
-
* call-seq:
|
402
|
-
* column.search(query, options={}) -> Groonga::Hash
|
403
|
-
*
|
404
401
|
* _object_ から _query_ に対応するオブジェクトを検索し、見つかっ
|
405
402
|
* たオブジェクトのIDがキーになっているGroonga::Hashを返す。
|
406
403
|
*
|
407
|
-
*
|
408
|
-
*
|
409
|
-
*
|
410
|
-
*
|
411
|
-
*
|
412
|
-
*
|
413
|
-
*
|
414
|
-
*
|
415
|
-
*
|
416
|
-
*
|
417
|
-
*
|
418
|
-
*
|
419
|
-
*
|
420
|
-
*
|
421
|
-
*
|
422
|
-
*
|
423
|
-
*
|
424
|
-
*
|
425
|
-
*
|
426
|
-
*
|
427
|
-
*
|
428
|
-
*
|
429
|
-
*
|
430
|
-
*
|
431
|
-
*
|
432
|
-
*
|
433
|
-
*
|
434
|
-
* [
|
435
|
-
* ...
|
404
|
+
* @overload search(query, options={})
|
405
|
+
* @param [::Hash] options The name and value
|
406
|
+
* pairs. Omitted names are initialized as the default value
|
407
|
+
* @option options [Groonga::Hash] :result
|
408
|
+
* 結果を格納するGroonga::Hash。指定しない場合は新しく
|
409
|
+
* Groonga::Hashを生成し、それに結果を格納して返す。
|
410
|
+
* @option options :operator
|
411
|
+
* 以下のどれかの値を指定する。 +nil+ , <tt>"or"</tt>, <tt>"||"</tt>,
|
412
|
+
* <tt>"and"</tt>, <tt>"+"</tt>, <tt>"&&"</tt>, <tt>"but"</tt>,
|
413
|
+
* <tt>"not"</tt>, <tt>"-"</tt>, <tt>"adjust"</tt>, <tt>">"</tt>。
|
414
|
+
* それぞれ以下のようになる。(FIXME: 「以下」)
|
415
|
+
* @option options :exact
|
416
|
+
* +true+ を指定すると完全一致で検索する
|
417
|
+
* @option options :longest_common_prefix
|
418
|
+
* +true+ を指定すると _query_ と同じ接頭辞をもつエントリのう
|
419
|
+
* ち、もっとも長いエントリを検索する
|
420
|
+
* @option options :suffix
|
421
|
+
* +true+ を指定すると _query_ が後方一致するエントリを検索す
|
422
|
+
* る
|
423
|
+
* @option options :prefix
|
424
|
+
* +true+ を指定すると _query_ が前方一致するレコードを検索す
|
425
|
+
* る
|
426
|
+
* @option options :near
|
427
|
+
* +true+ を指定すると _query_ に指定した複数の語が近傍に含ま
|
428
|
+
* れるレコードを検索する
|
429
|
+
* [...]
|
430
|
+
* ...
|
431
|
+
* @return [Groonga::Hash]
|
436
432
|
*/
|
437
433
|
static VALUE
|
438
434
|
rb_grn_index_column_search (int argc, VALUE *argv, VALUE self)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/* -*- coding: utf-8; c-file-style: "ruby" -*- */
|
2
2
|
/*
|
3
3
|
Copyright (C) 2011 Haruka Yoshihara <yoshihara@clear-code.com>
|
4
|
+
Copyright (C) 2012 Kouhei Sutou <kou@clear-code.com>
|
4
5
|
|
5
6
|
This library is free software; you can redistribute it and/or
|
6
7
|
modify it under the terms of the GNU Lesser General Public
|
@@ -78,6 +79,8 @@ rb_grn_index_cursor_each (VALUE self)
|
|
78
79
|
grn_obj *cursor;
|
79
80
|
grn_ctx *context;
|
80
81
|
|
82
|
+
RETURN_ENUMERATOR(self, 0, NULL);
|
83
|
+
|
81
84
|
rb_grn_index_cursor_deconstruct(SELF(self), &cursor, &context,
|
82
85
|
NULL, NULL, NULL, NULL);
|
83
86
|
|
data/ext/groonga/rb-grn-logger.c
CHANGED
@@ -249,50 +249,34 @@ rb_grn_logger_initialize (int argc, VALUE *argv, VALUE self)
|
|
249
249
|
}
|
250
250
|
|
251
251
|
/*
|
252
|
-
*
|
253
|
-
* Groonga::Logger.register(options={})
|
254
|
-
{|level, time, title, message, location| ...}
|
255
|
-
*
|
256
|
-
* groongaがログを出力する度に呼び出されるブロックを登録す
|
257
|
-
* る。
|
258
|
-
*
|
259
|
-
* ブロックに渡されてくる引数は _level_ , _time_ , _title_ ,
|
260
|
-
* _message_ , _location_ の5つで、 _level_ はSymbol、それ以外は
|
261
|
-
* 全て文字列で渡される。その4つについては _options_ で +false+
|
262
|
-
* を指定することでブロックに渡さないようにすることができ、
|
263
|
-
* その場合は空文字列が実際には渡される。
|
264
|
-
*
|
265
|
-
* _options_ に指定可能な値は以下の通り。
|
266
|
-
* @param options [::Hash] The name and value
|
267
|
-
* pairs. Omitted names are initialized as the default value.
|
268
|
-
* @option options :level (:notice) The log level
|
269
|
-
*
|
270
|
-
* ログのレベルを +:none+ , +:emergency+ , +:alert+ ,
|
271
|
-
* +:critical+ , +:error+ , +:warning+ , +:notice+ , +:info+ ,
|
272
|
-
* +:debug+ , +:dump+ のいずれかで指定する。それより重要度が
|
273
|
-
* 低いログはブロックに渡されなくなる。デフォルトでは
|
274
|
-
* +:notice+ 。
|
275
|
-
*
|
276
|
-
* @option options :time
|
277
|
-
*
|
278
|
-
* ログが出力された時間をブロックに渡したいなら +true+ を指
|
279
|
-
* 定する。デフォルトでは渡す。
|
252
|
+
* groongaがログを出力する度に呼び出されるブロックを登録する。
|
280
253
|
*
|
281
|
-
* @
|
282
|
-
*
|
283
|
-
*
|
284
|
-
*
|
285
|
-
*
|
286
|
-
*
|
287
|
-
*
|
288
|
-
*
|
289
|
-
*
|
290
|
-
*
|
291
|
-
*
|
292
|
-
*
|
293
|
-
*
|
294
|
-
*
|
295
|
-
*
|
254
|
+
* @overload register(options={})
|
255
|
+
* @yield [level, time, title, message, location]
|
256
|
+
* _level_ はSymbol、それ以外は全て文字列で渡される。 _level_ 以外
|
257
|
+
* の4つについては _options_ で +false+ を指定することでブロックに
|
258
|
+
* 渡さないようにすることができ、その場合は空文字列が実際には渡される。
|
259
|
+
* @param options [::Hash] The name and value
|
260
|
+
* pairs. Omitted names are initialized as the default value.
|
261
|
+
* @option options :level (:notice)
|
262
|
+
* ログのレベルを +:none+ , +:emergency+ , +:alert+ ,
|
263
|
+
* +:critical+ , +:error+ , +:warning+ , +:notice+ , +:info+ ,
|
264
|
+
* +:debug+ , +:dump+ のいずれかで指定する。それより重要度が
|
265
|
+
* 低いログはブロックに渡されなくなる。デフォルトでは +:notice+ 。
|
266
|
+
* @option options :time
|
267
|
+
* ログが出力された時間をブロックに渡したいなら +true+ を指
|
268
|
+
* 定する。デフォルトでは渡す。
|
269
|
+
* @option options :title
|
270
|
+
* ログのタイトルをブロックに渡したいなら +true+ を指定す
|
271
|
+
* る。デフォルトでは渡す。
|
272
|
+
* (FIXME: groongaで実装されていない?)
|
273
|
+
* @option options :message
|
274
|
+
* ログのメッセージをブロックに渡したいなら +true+ を指定す
|
275
|
+
* る。デフォルトでは渡す。
|
276
|
+
* @option options :location
|
277
|
+
* ログの発生元のプロセスIDとgroongaのソースコードのファイ
|
278
|
+
* ル名、行番号、関数名をブロックに渡したいなら +true+ を指
|
279
|
+
* 定する。デフォルトでは渡す。
|
296
280
|
*/
|
297
281
|
static VALUE
|
298
282
|
rb_grn_logger_s_register (int argc, VALUE *argv, VALUE klass)
|
@@ -396,11 +380,10 @@ rb_grn_logger_s_set_path (VALUE klass, VALUE rb_path,
|
|
396
380
|
#endif
|
397
381
|
|
398
382
|
/*
|
399
|
-
*
|
400
|
-
* Groonga::Logger.log_path # => path
|
383
|
+
* groongaのデフォルトロガーがログを出力するファイルのパスを返す。
|
401
384
|
*
|
402
|
-
*
|
403
|
-
*
|
385
|
+
* @overload log_path
|
386
|
+
* @return [String] path ログを出力するファイルのパス
|
404
387
|
*/
|
405
388
|
static VALUE
|
406
389
|
rb_grn_logger_s_get_log_path (VALUE klass)
|
@@ -439,11 +422,10 @@ rb_grn_logger_s_set_log_path (VALUE klass, VALUE path)
|
|
439
422
|
}
|
440
423
|
|
441
424
|
/*
|
442
|
-
*
|
443
|
-
* Groonga::Logger.query_log_path # => path
|
425
|
+
* groongaのデフォルトロガーがクエリログを出力するファイルのパスを返す。
|
444
426
|
*
|
445
|
-
*
|
446
|
-
*
|
427
|
+
* @overload query_log_path
|
428
|
+
* @return [String] path ログを出力するファイルのパス
|
447
429
|
*/
|
448
430
|
static VALUE
|
449
431
|
rb_grn_logger_s_get_query_log_path (VALUE klass)
|
data/ext/groonga/rb-grn-object.c
CHANGED
@@ -49,6 +49,7 @@ rb_grn_object_from_ruby_object (VALUE object, grn_ctx **context)
|
|
49
49
|
grn_object = rb_grn_context_get_backward_compatibility(*context,
|
50
50
|
name,
|
51
51
|
name_size);
|
52
|
+
rb_grn_context_check(*context, object);
|
52
53
|
if (!grn_object)
|
53
54
|
rb_raise(rb_eArgError,
|
54
55
|
"unregistered groonga object: name: <%s>",
|
@@ -56,6 +57,7 @@ rb_grn_object_from_ruby_object (VALUE object, grn_ctx **context)
|
|
56
57
|
return grn_object;
|
57
58
|
} else if (RVAL2CBOOL(rb_obj_is_kind_of(object, rb_cInteger))) {
|
58
59
|
grn_object = grn_ctx_at(*context, NUM2UINT(object));
|
60
|
+
rb_grn_context_check(*context, object);
|
59
61
|
if (!grn_object)
|
60
62
|
rb_raise(rb_eArgError,
|
61
63
|
"unregistered groonga object: ID: <%s>",
|
@@ -54,7 +54,7 @@ void
|
|
54
54
|
rb_grn_init_operator (VALUE mGrn)
|
55
55
|
{
|
56
56
|
rb_mGrnOperator = rb_define_module_under(mGrn, "Operator");
|
57
|
-
/* deprecated
|
57
|
+
/* @deprecated backward compatibility. */
|
58
58
|
rb_define_const(mGrn, "Operation", rb_mGrnOperator);
|
59
59
|
|
60
60
|
rb_define_const(rb_mGrnOperator, "PUSH",
|
@@ -35,91 +35,10 @@ VALUE rb_cGrnPatriciaTrie;
|
|
35
35
|
*/
|
36
36
|
|
37
37
|
/*
|
38
|
-
* call-seq:
|
39
|
-
* Groonga::PatriciaTrie.create(options={}) -> Groonga::PatriciaTrie
|
40
|
-
* Groonga::PatriciaTrie.create(options={}) {|table| ... }
|
41
|
-
*
|
42
38
|
* 各レコードをパトリシアトライで管理するテーブルを生成する。
|
43
39
|
* ブロックを指定すると、そのブロックに生成したテーブルが渡さ
|
44
40
|
* れ、ブロックを抜けると自動的にテーブルが破棄される。
|
45
41
|
*
|
46
|
-
* _options_ に指定可能な値は以下の通り。
|
47
|
-
* @param options [::Hash] The name and value
|
48
|
-
* pairs. Omitted names are initialized as the default value.
|
49
|
-
* @option options [Groonga::Context] :context (Groonga::Context.default)
|
50
|
-
*
|
51
|
-
* テーブルが利用するGroonga::Context。
|
52
|
-
*
|
53
|
-
* @option options :name The table name
|
54
|
-
*
|
55
|
-
* テーブルの名前。名前をつけると、Groonga::Context#[]に名
|
56
|
-
* 前を指定してテーブルを取得することができる。省略すると
|
57
|
-
* 無名テーブルになり、テーブルIDでのみ取得できる。
|
58
|
-
*
|
59
|
-
* @option options :path The path
|
60
|
-
*
|
61
|
-
* テーブルを保存するパス。パスを指定すると永続テーブルとな
|
62
|
-
* り、プロセス終了後もレコードは保持される。次回起動時に
|
63
|
-
* Groonga::Context#[]で保存されたレコードを利用する
|
64
|
-
* ことができる。省略すると一時テーブルになり、プロセスが終
|
65
|
-
* 了するとレコードは破棄される。
|
66
|
-
*
|
67
|
-
* @option options :persistent The persistent
|
68
|
-
*
|
69
|
-
* +true+ を指定すると永続テーブルとなる。 +path+ を省略した
|
70
|
-
* 場合は自動的にパスが付加される。 +:context+ で指定した
|
71
|
-
* Groonga::Contextに結びついているデータベースが一時デー
|
72
|
-
* タベースの場合は例外が発生する。
|
73
|
-
*
|
74
|
-
* @option options :key_normalize The key_normalize
|
75
|
-
*
|
76
|
-
* +true+ を指定するとキーを正規化する。
|
77
|
-
*
|
78
|
-
* @option options :key_with_sis The key_with_sis
|
79
|
-
*
|
80
|
-
* +true+ を指定するとキーの文字列の全suffixが自動的に登
|
81
|
-
* 録される。
|
82
|
-
*
|
83
|
-
* @option options :key_type The key_type
|
84
|
-
*
|
85
|
-
* キーの種類を示すオブジェクトを指定する。キーの種類には型
|
86
|
-
* 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
|
87
|
-
* テーブル(Groonga::Array、Groonga::Hash、
|
88
|
-
* Groonga::PatriciaTrieのどれか)を指定する。
|
89
|
-
*
|
90
|
-
* Groonga::Typeを指定した場合は、その型が示す範囲の値をキー
|
91
|
-
* として使用する。ただし、キーの最大サイズは4096バイトで
|
92
|
-
* あるため、Groonga::Type::TEXTやGroonga::Type::LONG_TEXT
|
93
|
-
* は使用できない。
|
94
|
-
*
|
95
|
-
* テーブルを指定した場合はレコードIDをキーとして使用する。
|
96
|
-
* 指定したテーブルのGroonga::Recordをキーとして使用するこ
|
97
|
-
* ともでき、その場合は自動的にGroonga::Recordからレコード
|
98
|
-
* IDを取得する。
|
99
|
-
*
|
100
|
-
* 省略した場合はShortText型をキーとして使用する。この場合、
|
101
|
-
* 4096バイトまで使用可能である。
|
102
|
-
*
|
103
|
-
* @option options :value_type The value_type
|
104
|
-
*
|
105
|
-
* 値の型を指定する。省略すると値のための領域を確保しない。
|
106
|
-
* 値を保存したい場合は必ず指定すること。
|
107
|
-
*
|
108
|
-
* 参考: Groonga::Type.new
|
109
|
-
*
|
110
|
-
* @option options :default_tokenizer The default_tokenizer
|
111
|
-
*
|
112
|
-
* Groonga::IndexColumnで使用するトークナイザを指定する。
|
113
|
-
* デフォルトでは何も設定されていないので、テーブルに
|
114
|
-
* Groonga::IndexColumnを定義する場合は
|
115
|
-
* <tt>"TokenBigram"</tt>などを指定する必要がある。
|
116
|
-
*
|
117
|
-
* @option options :sub_records The sub_records
|
118
|
-
*
|
119
|
-
* +true+ を指定すると#groupでグループ化したときに、
|
120
|
-
* Groonga::Record#n_sub_recordsでグループに含まれるレコー
|
121
|
-
* ドの件数を取得できる。
|
122
|
-
*
|
123
42
|
* @example
|
124
43
|
* #無名一時テーブルを生成する。
|
125
44
|
* Groonga::PatriciaTrie.create
|
@@ -162,6 +81,123 @@ VALUE rb_cGrnPatriciaTrie;
|
|
162
81
|
* :default_tokenizer => "TokenBigram")
|
163
82
|
* terms.define_index_column("content", bookmarks,
|
164
83
|
* :source => "Bookmarks.comment")
|
84
|
+
*
|
85
|
+
* @overload create(options={})
|
86
|
+
* @return [Groonga::PatriciaTrie]
|
87
|
+
* @param options [::Hash] The name and value
|
88
|
+
* pairs. Omitted names are initialized as the default value.
|
89
|
+
* @option options [Groonga::Context] :context (Groonga::Context.default)
|
90
|
+
* テーブルが利用するGroonga::Context。
|
91
|
+
* @option options :name
|
92
|
+
* テーブルの名前。名前をつけると、Groonga::Context#[]に名
|
93
|
+
* 前を指定してテーブルを取得することができる。省略すると
|
94
|
+
* 無名テーブルになり、テーブルIDでのみ取得できる。
|
95
|
+
* @option options :path
|
96
|
+
* テーブルを保存するパス。パスを指定すると永続テーブルとな
|
97
|
+
* り、プロセス終了後もレコードは保持される。次回起動時に
|
98
|
+
* Groonga::Context#[]で保存されたレコードを利用する
|
99
|
+
* ことができる。省略すると一時テーブルになり、プロセスが終
|
100
|
+
* 了するとレコードは破棄される。
|
101
|
+
* @option options :persistent
|
102
|
+
* +true+ を指定すると永続テーブルとなる。 +path+ を省略した
|
103
|
+
* 場合は自動的にパスが付加される。 +:context+ で指定した
|
104
|
+
* Groonga::Contextに結びついているデータベースが一時デー
|
105
|
+
* タベースの場合は例外が発生する。
|
106
|
+
* @option options :key_normalize
|
107
|
+
* +true+ を指定するとキーを正規化する。
|
108
|
+
* @option options :key_with_sis
|
109
|
+
* +true+ を指定するとキーの文字列の全suffixが自動的に登
|
110
|
+
* 録される。
|
111
|
+
* @option options :key_type
|
112
|
+
* キーの種類を示すオブジェクトを指定する。キーの種類には型
|
113
|
+
* 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
|
114
|
+
* テーブル(Groonga::Array、Groonga::Hash、
|
115
|
+
* Groonga::PatriciaTrieのどれか)を指定する。
|
116
|
+
*
|
117
|
+
* Groonga::Typeを指定した場合は、その型が示す範囲の値をキー
|
118
|
+
* として使用する。ただし、キーの最大サイズは4096バイトで
|
119
|
+
* あるため、Groonga::Type::TEXTやGroonga::Type::LONG_TEXT
|
120
|
+
* は使用できない。
|
121
|
+
*
|
122
|
+
* テーブルを指定した場合はレコードIDをキーとして使用する。
|
123
|
+
* 指定したテーブルのGroonga::Recordをキーとして使用するこ
|
124
|
+
* ともでき、その場合は自動的にGroonga::Recordからレコード
|
125
|
+
* IDを取得する。
|
126
|
+
*
|
127
|
+
* 省略した場合はShortText型をキーとして使用する。この場合、
|
128
|
+
* 4096バイトまで使用可能である。
|
129
|
+
* @option options :value_type
|
130
|
+
* 値の型を指定する。省略すると値のための領域を確保しない。
|
131
|
+
* 値を保存したい場合は必ず指定すること。
|
132
|
+
*
|
133
|
+
* 参考: Groonga::Type.new
|
134
|
+
* @option options :default_tokenizer
|
135
|
+
* Groonga::IndexColumnで使用するトークナイザを指定する。
|
136
|
+
* デフォルトでは何も設定されていないので、テーブルに
|
137
|
+
* Groonga::IndexColumnを定義する場合は
|
138
|
+
* <tt>"TokenBigram"</tt>などを指定する必要がある。
|
139
|
+
* @option options :sub_records
|
140
|
+
* +true+ を指定すると#groupでグループ化したときに、
|
141
|
+
* Groonga::Record#n_sub_recordsでグループに含まれるレコー
|
142
|
+
* ドの件数を取得できる。
|
143
|
+
* @overload create(options={})
|
144
|
+
* @yield [table]
|
145
|
+
* @param options [::Hash] The name and value
|
146
|
+
* pairs. Omitted names are initialized as the default value.
|
147
|
+
* @option options [Groonga::Context] :context (Groonga::Context.default)
|
148
|
+
* テーブルが利用するGroonga::Context。
|
149
|
+
* @option options :name
|
150
|
+
* テーブルの名前。名前をつけると、Groonga::Context#[]に名
|
151
|
+
* 前を指定してテーブルを取得することができる。省略すると
|
152
|
+
* 無名テーブルになり、テーブルIDでのみ取得できる。
|
153
|
+
* @option options :path
|
154
|
+
* テーブルを保存するパス。パスを指定すると永続テーブルとな
|
155
|
+
* り、プロセス終了後もレコードは保持される。次回起動時に
|
156
|
+
* Groonga::Context#[]で保存されたレコードを利用する
|
157
|
+
* ことができる。省略すると一時テーブルになり、プロセスが終
|
158
|
+
* 了するとレコードは破棄される。
|
159
|
+
* @option options :persistent
|
160
|
+
* +true+ を指定すると永続テーブルとなる。 +path+ を省略した
|
161
|
+
* 場合は自動的にパスが付加される。 +:context+ で指定した
|
162
|
+
* Groonga::Contextに結びついているデータベースが一時デー
|
163
|
+
* タベースの場合は例外が発生する。
|
164
|
+
* @option options :key_normalize
|
165
|
+
* +true+ を指定するとキーを正規化する。
|
166
|
+
* @option options :key_with_sis
|
167
|
+
* +true+ を指定するとキーの文字列の全suffixが自動的に登
|
168
|
+
* 録される。
|
169
|
+
* @option options :key_type
|
170
|
+
* キーの種類を示すオブジェクトを指定する。キーの種類には型
|
171
|
+
* 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
|
172
|
+
* テーブル(Groonga::Array、Groonga::Hash、
|
173
|
+
* Groonga::PatriciaTrieのどれか)を指定する。
|
174
|
+
*
|
175
|
+
* Groonga::Typeを指定した場合は、その型が示す範囲の値をキー
|
176
|
+
* として使用する。ただし、キーの最大サイズは4096バイトで
|
177
|
+
* あるため、Groonga::Type::TEXTやGroonga::Type::LONG_TEXT
|
178
|
+
* は使用できない。
|
179
|
+
*
|
180
|
+
* テーブルを指定した場合はレコードIDをキーとして使用する。
|
181
|
+
* 指定したテーブルのGroonga::Recordをキーとして使用するこ
|
182
|
+
* ともでき、その場合は自動的にGroonga::Recordからレコード
|
183
|
+
* IDを取得する。
|
184
|
+
*
|
185
|
+
* 省略した場合はShortText型をキーとして使用する。この場合、
|
186
|
+
* 4096バイトまで使用可能である。
|
187
|
+
* @option options :value_type
|
188
|
+
* 値の型を指定する。省略すると値のための領域を確保しない。
|
189
|
+
* 値を保存したい場合は必ず指定すること。
|
190
|
+
*
|
191
|
+
* 参考: Groonga::Type.new
|
192
|
+
* @option options :default_tokenizer
|
193
|
+
* Groonga::IndexColumnで使用するトークナイザを指定する。
|
194
|
+
* デフォルトでは何も設定されていないので、テーブルに
|
195
|
+
* Groonga::IndexColumnを定義する場合は
|
196
|
+
* <tt>"TokenBigram"</tt>などを指定する必要がある。
|
197
|
+
* @option options :sub_records
|
198
|
+
* +true+ を指定すると#groupでグループ化したときに、
|
199
|
+
* Groonga::Record#n_sub_recordsでグループに含まれるレコー
|
200
|
+
* ドの件数を取得できる。
|
165
201
|
*/
|
166
202
|
static VALUE
|
167
203
|
rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
|
@@ -243,43 +279,14 @@ rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
|
|
243
279
|
}
|
244
280
|
|
245
281
|
/*
|
246
|
-
*
|
247
|
-
*
|
248
|
-
*
|
249
|
-
* _key_ にマッチするレコードのIDがキーに入っている
|
250
|
-
* Groonga::Hashを返す。マッチするレコードがない場合は空の
|
251
|
-
* Groonga::Hashが返る。
|
282
|
+
* _key_ にマッチするレコードのIDがキーに入っているGroonga::Hashを返す。
|
283
|
+
* マッチするレコードがない場合は空のGroonga::Hashが返る。
|
252
284
|
*
|
253
|
-
* _options_ で +:result+
|
254
|
-
*
|
285
|
+
* _options_ で +:result+ を指定することにより、そのテーブルにマッチした
|
286
|
+
* レコードIDがキーのレコードを追加することができる。
|
255
287
|
* +:result+ にテーブルを指定した場合は、そのテーブルが返る。
|
256
288
|
*
|
257
|
-
*
|
258
|
-
* @param options [::Hash] The name and value
|
259
|
-
* pairs. Omitted names are initialized as the default value.
|
260
|
-
* @option options :result The result
|
261
|
-
*
|
262
|
-
* 結果を格納するテーブル。
|
263
|
-
* @option options :operator (Groonga::Operator::OR)
|
264
|
-
*
|
265
|
-
* マッチしたレコードをどのように扱うか。指定可能な値は以
|
266
|
-
* 下の通り。
|
267
|
-
*
|
268
|
-
* [Groonga::Operator::OR]
|
269
|
-
* マッチしたレコードを追加。すでにレコードが追加され
|
270
|
-
* ている場合は何もしない。
|
271
|
-
* [Groonga::Operator::AND]
|
272
|
-
* マッチしたレコードのスコアを増加。マッチしなかった
|
273
|
-
* レコードを削除。
|
274
|
-
* [Groonga::Operator::BUT]
|
275
|
-
* マッチしたレコードを削除。
|
276
|
-
* [Groonga::Operator::ADJUST]
|
277
|
-
* マッチしたレコードのスコアを増加。
|
278
|
-
*
|
279
|
-
* [+:type+]
|
280
|
-
* ?????
|
281
|
-
*
|
282
|
-
* 複数のキーで検索し、結果を1つのテーブルに集める。
|
289
|
+
* @example 複数のキーで検索し、結果を1つのテーブルに集める。
|
283
290
|
* result = nil
|
284
291
|
* keys = ["morita", "gunyara-kun", "yu"]
|
285
292
|
* keys.each do |key|
|
@@ -289,6 +296,30 @@ rb_grn_patricia_trie_s_create (int argc, VALUE *argv, VALUE klass)
|
|
289
296
|
* user = record.key
|
290
297
|
* p user.key # -> "morita"または"gunyara-kun"または"yu"
|
291
298
|
* end
|
299
|
+
*
|
300
|
+
* @overload search(key, options=nil)
|
301
|
+
* @param options [::Hash] The name and value
|
302
|
+
* pairs. Omitted names are initialized as the default value.
|
303
|
+
* @option options :result
|
304
|
+
* 結果を格納するテーブル。
|
305
|
+
* @option options :operator (Groonga::Operator::OR)
|
306
|
+
* マッチしたレコードをどのように扱うか。指定可能な値は以
|
307
|
+
* 下の通り。
|
308
|
+
*
|
309
|
+
* [Groonga::Operator::OR]
|
310
|
+
* マッチしたレコードを追加。すでにレコードが追加され
|
311
|
+
* ている場合は何もしない。
|
312
|
+
* [Groonga::Operator::AND]
|
313
|
+
* マッチしたレコードのスコアを増加。マッチしなかった
|
314
|
+
* レコードを削除。
|
315
|
+
* [Groonga::Operator::BUT]
|
316
|
+
* マッチしたレコードを削除。
|
317
|
+
* [Groonga::Operator::ADJUST]
|
318
|
+
* マッチしたレコードのスコアを増加。
|
319
|
+
*
|
320
|
+
* [+:type+]
|
321
|
+
* ?????
|
322
|
+
* @return [Groonga::Hash]
|
292
323
|
*/
|
293
324
|
static VALUE
|
294
325
|
rb_grn_patricia_trie_search (int argc, VALUE *argv, VALUE self)
|
@@ -598,57 +629,68 @@ rb_grn_patricia_trie_open_grn_prefix_cursor (int argc, VALUE *argv, VALUE self,
|
|
598
629
|
|
599
630
|
|
600
631
|
/*
|
601
|
-
* call-seq:
|
602
|
-
* table.open_prefix_cursor(prefix, options={}) -> Groonga::PatriciaTrieCursor
|
603
|
-
* table.open_prefix_cursor(prefix, options={}) {|cursor| ... }
|
604
|
-
*
|
605
632
|
* _prefix_ に前方一致検索をするカーソルを生成して返す。ブロッ
|
606
633
|
* クを指定すると、そのブロックに生成したカーソルが渡され、ブ
|
607
634
|
* ロックを抜けると自動的にカーソルが破棄される。
|
608
635
|
*
|
609
|
-
*
|
610
|
-
*
|
611
|
-
*
|
612
|
-
*
|
613
|
-
*
|
614
|
-
*
|
615
|
-
*
|
616
|
-
*
|
617
|
-
*
|
618
|
-
*
|
619
|
-
*
|
620
|
-
*
|
621
|
-
*
|
622
|
-
*
|
623
|
-
*
|
624
|
-
*
|
625
|
-
*
|
626
|
-
*
|
627
|
-
*
|
628
|
-
*
|
629
|
-
*
|
630
|
-
*
|
631
|
-
*
|
632
|
-
*
|
633
|
-
*
|
634
|
-
*
|
635
|
-
*
|
636
|
-
*
|
637
|
-
*
|
638
|
-
* @
|
639
|
-
*
|
640
|
-
*
|
641
|
-
*
|
642
|
-
*
|
643
|
-
*
|
644
|
-
*
|
645
|
-
*
|
646
|
-
*
|
647
|
-
*
|
648
|
-
*
|
649
|
-
*
|
650
|
-
*
|
651
|
-
*
|
636
|
+
* @overload open_prefix_cursor(prefix, options={})
|
637
|
+
* @return [Groonga::PatriciaTrieCursor]
|
638
|
+
* @param options [::Hash] The name and value
|
639
|
+
* pairs. Omitted names are initialized as the default value.
|
640
|
+
* @option options :key_bytes
|
641
|
+
* _prefix_ のサイズ(byte)
|
642
|
+
* @option options :key_bits
|
643
|
+
* _prefix_ のサイズ(bit)
|
644
|
+
* @option options :offset
|
645
|
+
* 該当する範囲のレコードのうち、(0ベースで) _:offset_ 番目
|
646
|
+
* からレコードを取り出す。
|
647
|
+
* @option options :limit
|
648
|
+
* 該当する範囲のレコードのうち、 _:limit_ 件のみを取り出す。
|
649
|
+
* 省略された場合または-1が指定された場合は、全件が指定され
|
650
|
+
* たものとみなす。
|
651
|
+
* @option options :order
|
652
|
+
* +:asc+ または +:ascending+ を指定すると昇順にレコードを取
|
653
|
+
* り出す。
|
654
|
+
* +:desc+ または +:descending+ を指定すると降順にレコードを
|
655
|
+
* 取り出す。
|
656
|
+
* @option options :order_by (:id)
|
657
|
+
* +:id+ を指定するとID順にレコードを取り出す。(デフォルト)
|
658
|
+
* +:key+指定するとキー順にレコードを取り出す。
|
659
|
+
* @option options :greater_than
|
660
|
+
* +true+ を指定すると _prefix_ で指定した値に一致した [ +key+ ] を
|
661
|
+
* 範囲に含まない。
|
662
|
+
* @option options :less_than
|
663
|
+
* +true+ を指定すると _prefix_ で指定した値に一致した [ +key+ ] を
|
664
|
+
* 範囲に含まない。
|
665
|
+
* @overload open_prefix_cursor(prefix, options={})
|
666
|
+
* @yield [cursor]
|
667
|
+
* @param options [::Hash] The name and value
|
668
|
+
* pairs. Omitted names are initialized as the default value.
|
669
|
+
* @option options :key_bytes
|
670
|
+
* _prefix_ のサイズ(byte)
|
671
|
+
* @option options :key_bits
|
672
|
+
* _prefix_ のサイズ(bit)
|
673
|
+
* @option options :offset
|
674
|
+
* 該当する範囲のレコードのうち、(0ベースで) _:offset_ 番目
|
675
|
+
* からレコードを取り出す。
|
676
|
+
* @option options :limit
|
677
|
+
* 該当する範囲のレコードのうち、 _:limit_ 件のみを取り出す。
|
678
|
+
* 省略された場合または-1が指定された場合は、全件が指定され
|
679
|
+
* たものとみなす。
|
680
|
+
* @option options :order
|
681
|
+
* +:asc+ または +:ascending+ を指定すると昇順にレコードを取
|
682
|
+
* り出す。
|
683
|
+
* +:desc+ または +:descending+ を指定すると降順にレコードを
|
684
|
+
* 取り出す。
|
685
|
+
* @option options :order_by (:id)
|
686
|
+
* +:id+ を指定するとID順にレコードを取り出す。(デフォルト)
|
687
|
+
* +:key+指定するとキー順にレコードを取り出す。
|
688
|
+
* @option options :greater_than
|
689
|
+
* +true+ を指定すると _prefix_ で指定した値に一致した [ +key+ ] を
|
690
|
+
* 範囲に含まない。
|
691
|
+
* @option options :less_than
|
692
|
+
* +true+ を指定すると _prefix_ で指定した値に一致した [ +key+ ] を
|
693
|
+
* 範囲に含まない。
|
652
694
|
*/
|
653
695
|
static VALUE
|
654
696
|
rb_grn_patricia_trie_open_prefix_cursor (int argc, VALUE *argv, VALUE self)
|
@@ -729,10 +771,6 @@ rb_grn_patricia_trie_open_grn_rk_cursor (int argc, VALUE *argv, VALUE self,
|
|
729
771
|
}
|
730
772
|
|
731
773
|
/*
|
732
|
-
* call-seq:
|
733
|
-
* table.open_rk_cursor(key, options={}) -> Groonga::PatriciaTrieCursor
|
734
|
-
* table.open_rk_cursor(key, options={}) {|cursor| ... }
|
735
|
-
*
|
736
774
|
* _table_ のキーはカタカナである必要がある。また、エンコーディ
|
737
775
|
* ングはUTF-8である必要がある。ローマ字やひらがなで _key_ を指
|
738
776
|
* 定しても、 _key_ に対応するカタカナのキーを検索するカーソル
|
@@ -740,37 +778,46 @@ rb_grn_patricia_trie_open_grn_rk_cursor (int argc, VALUE *argv, VALUE self,
|
|
740
778
|
* たカーソルが渡され、ブロックを抜けると自動的にカーソルが破
|
741
779
|
* 棄される。
|
742
780
|
*
|
743
|
-
*
|
744
|
-
*
|
745
|
-
*
|
746
|
-
*
|
747
|
-
*
|
748
|
-
*
|
749
|
-
*
|
750
|
-
*
|
751
|
-
*
|
752
|
-
*
|
753
|
-
*
|
754
|
-
*
|
755
|
-
*
|
756
|
-
*
|
757
|
-
*
|
758
|
-
*
|
759
|
-
*
|
760
|
-
*
|
761
|
-
*
|
762
|
-
*
|
763
|
-
*
|
764
|
-
*
|
765
|
-
*
|
766
|
-
*
|
767
|
-
*
|
768
|
-
*
|
769
|
-
*
|
770
|
-
*
|
771
|
-
*
|
772
|
-
*
|
773
|
-
*
|
781
|
+
* @overload open_rk_cursor(key, options={})
|
782
|
+
* @return [Groonga::PatriciaTrieCursor]
|
783
|
+
* @param options [::Hash]
|
784
|
+
* pairs. Omitted names are initialized as the default value.
|
785
|
+
* @option options :key_bytes
|
786
|
+
* _key_のサイズ(byte)
|
787
|
+
* @option options :key_bits
|
788
|
+
* _key_のサイズ(bit)(現在は未サポート)
|
789
|
+
* @option options :offset
|
790
|
+
* 該当する範囲のレコードのうち、(0ベースで)_:offset_番目から
|
791
|
+
* レコードを取り出す。
|
792
|
+
* @option options :limit
|
793
|
+
* 該当する範囲のレコードのうち、 _:limit_ 件のみを取り出す。
|
794
|
+
* 省略された場合または-1が指定された場合は、全件が指定されたものとみなす。
|
795
|
+
* @option options :greater_than
|
796
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
797
|
+
* 範囲に含まない。
|
798
|
+
* @option options :less_than
|
799
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
800
|
+
* 範囲に含まない。
|
801
|
+
* @overload open_rk_cursor(key, options={})
|
802
|
+
* @yield [cursor]
|
803
|
+
* @param options [::Hash]
|
804
|
+
* pairs. Omitted names are initialized as the default value.
|
805
|
+
* @option options :key_bytes
|
806
|
+
* _key_のサイズ(byte)
|
807
|
+
* @option options :key_bits
|
808
|
+
* _key_のサイズ(bit)(現在は未サポート)
|
809
|
+
* @option options :offset
|
810
|
+
* 該当する範囲のレコードのうち、(0ベースで)_:offset_番目から
|
811
|
+
* レコードを取り出す。
|
812
|
+
* @option options :limit
|
813
|
+
* 該当する範囲のレコードのうち、 _:limit_ 件のみを取り出す。
|
814
|
+
* 省略された場合または-1が指定された場合は、全件が指定されたものとみなす。
|
815
|
+
* @option options :greater_than
|
816
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
817
|
+
* 範囲に含まない。
|
818
|
+
* @option options :less_than
|
819
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
820
|
+
* 範囲に含まない。
|
774
821
|
*/
|
775
822
|
static VALUE
|
776
823
|
rb_grn_patricia_trie_open_rk_cursor (int argc, VALUE *argv, VALUE self)
|
@@ -820,7 +867,8 @@ rb_grn_patricia_trie_open_grn_near_cursor (int argc, VALUE *argv, VALUE self,
|
|
820
867
|
NULL);
|
821
868
|
|
822
869
|
key_p = RVAL2GRNBULK_WITH_TYPE(rb_key, *context, key_p,
|
823
|
-
table->header.domain,
|
870
|
+
table->header.domain,
|
871
|
+
grn_ctx_at(*context, table->header.domain));
|
824
872
|
GRN_OBJ_INIT(&casted_key, GRN_BULK, 0, table->header.domain);
|
825
873
|
if (key_p->header.domain != table->header.domain) {
|
826
874
|
grn_obj_cast(*context, key_p, &casted_key, 0);
|
@@ -851,41 +899,48 @@ rb_grn_patricia_trie_open_grn_near_cursor (int argc, VALUE *argv, VALUE self,
|
|
851
899
|
}
|
852
900
|
|
853
901
|
/*
|
854
|
-
* call-seq:
|
855
|
-
* table.open_near_cursor(key, options={}) -> Groonga::PatriciaTrieCursor
|
856
|
-
* table.open_near_cursor(key, options={}) {|cursor| ... }
|
857
|
-
*
|
858
902
|
* _key_ に近い順にレコードを取り出すカーソルを生成して返す。
|
859
|
-
*
|
860
|
-
*
|
861
|
-
*
|
862
|
-
*
|
863
|
-
*
|
864
|
-
*
|
865
|
-
*
|
866
|
-
*
|
867
|
-
*
|
868
|
-
*
|
869
|
-
*
|
870
|
-
*
|
871
|
-
*
|
872
|
-
*
|
873
|
-
*
|
874
|
-
*
|
875
|
-
*
|
876
|
-
*
|
877
|
-
*
|
878
|
-
*
|
879
|
-
*
|
880
|
-
*
|
881
|
-
*
|
882
|
-
*
|
883
|
-
*
|
884
|
-
*
|
885
|
-
*
|
886
|
-
*
|
887
|
-
*
|
888
|
-
*
|
903
|
+
* ブロックを指定すると、そのブロックに生成したカーソルが渡され、
|
904
|
+
* ブロックを抜けると自動的にカーソルが破棄される。
|
905
|
+
*
|
906
|
+
* @overload open_near_cursor(key, options={})
|
907
|
+
* @return [Groonga::PatriciaTrieCursor]
|
908
|
+
* @param options [::Hash] The name and value
|
909
|
+
* pairs. Omitted names are initialized as the default value.
|
910
|
+
* @option options :size
|
911
|
+
* _size_ バイト以降のデータが同じキーのレコードに限定する。
|
912
|
+
* @option options :offset
|
913
|
+
* 該当する範囲のレコードのうち、(0ベースで)_:offset_番目
|
914
|
+
* からレコードを取り出す。
|
915
|
+
* @option options :limit
|
916
|
+
* 該当する範囲のレコードのうち、_:limit_件のみを取り出す。
|
917
|
+
* 省略された場合または-1が指定された場合は、全件が指定され
|
918
|
+
* たものとみなす。
|
919
|
+
* @option options :greater_than
|
920
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
921
|
+
* 範囲に含まない。
|
922
|
+
* @option options :less_than
|
923
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
924
|
+
* 範囲に含まない。
|
925
|
+
* @overload open_near_cursor(key, options={})
|
926
|
+
* @yield [cursor]
|
927
|
+
* @param options [::Hash] The name and value
|
928
|
+
* pairs. Omitted names are initialized as the default value.
|
929
|
+
* @option options :size
|
930
|
+
* _size_ バイト以降のデータが同じキーのレコードに限定する。
|
931
|
+
* @option options :offset
|
932
|
+
* 該当する範囲のレコードのうち、(0ベースで)_:offset_番目
|
933
|
+
* からレコードを取り出す。
|
934
|
+
* @option options :limit
|
935
|
+
* 該当する範囲のレコードのうち、_:limit_件のみを取り出す。
|
936
|
+
* 省略された場合または-1が指定された場合は、全件が指定され
|
937
|
+
* たものとみなす。
|
938
|
+
* @option options :greater_than
|
939
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
940
|
+
* 範囲に含まない。
|
941
|
+
* @option options :less_than
|
942
|
+
* +true+ を指定すると _key_ で指定した値に一致した [ +key+ ] を
|
943
|
+
* 範囲に含まない。
|
889
944
|
*/
|
890
945
|
static VALUE
|
891
946
|
rb_grn_patricia_trie_open_near_cursor (int argc, VALUE *argv, VALUE self)
|