rroonga 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/Rakefile +5 -1
  2. data/ext/groonga/extconf.rb +36 -4
  3. data/ext/groonga/rb-grn-accessor.c +8 -10
  4. data/ext/groonga/rb-grn-array-cursor.c +2 -2
  5. data/ext/groonga/rb-grn-array.c +35 -59
  6. data/ext/groonga/rb-grn-column.c +105 -192
  7. data/ext/groonga/rb-grn-context.c +60 -63
  8. data/ext/groonga/rb-grn-database.c +27 -37
  9. data/ext/groonga/rb-grn-double-array-trie-cursor.c +3 -3
  10. data/ext/groonga/rb-grn-double-array-trie.c +75 -126
  11. data/ext/groonga/rb-grn-encoding.c +27 -27
  12. data/ext/groonga/rb-grn-expression.c +29 -24
  13. data/ext/groonga/rb-grn-fix-size-column.c +7 -9
  14. data/ext/groonga/rb-grn-hash-cursor.c +3 -3
  15. data/ext/groonga/rb-grn-hash.c +57 -108
  16. data/ext/groonga/rb-grn-index-column.c +17 -29
  17. data/ext/groonga/rb-grn-logger.c +11 -14
  18. data/ext/groonga/rb-grn-object.c +51 -94
  19. data/ext/groonga/rb-grn-patricia-trie-cursor.c +2 -2
  20. data/ext/groonga/rb-grn-patricia-trie.c +161 -276
  21. data/ext/groonga/rb-grn-plugin.c +6 -10
  22. data/ext/groonga/rb-grn-table-cursor.c +14 -21
  23. data/ext/groonga/rb-grn-table-key-support.c +32 -35
  24. data/ext/groonga/rb-grn-table.c +149 -252
  25. data/ext/groonga/rb-grn-variable.c +6 -7
  26. data/ext/groonga/rb-grn-view-accessor.c +1 -1
  27. data/ext/groonga/rb-grn-view-cursor.c +2 -2
  28. data/ext/groonga/rb-grn-view.c +28 -45
  29. data/ext/groonga/rb-grn.h +1 -1
  30. data/ext/groonga/rb-groonga.c +6 -6
  31. data/lib/groonga/database.rb +1 -1
  32. data/lib/groonga/dumper.rb +109 -33
  33. data/lib/groonga/expression-builder.rb +24 -0
  34. data/lib/groonga/pagination.rb +30 -24
  35. data/lib/groonga/record.rb +21 -18
  36. data/lib/groonga/schema.rb +156 -140
  37. data/test/test-command-select.rb +66 -1
  38. data/test/test-database-dumper.rb +50 -10
  39. data/test/test-expression-builder.rb +41 -0
  40. metadata +4 -4
@@ -26,47 +26,47 @@
26
26
  *
27
27
  * エンコーディングの指定方法は以下の通り。
28
28
  *
29
- * [+nil+]
30
- * コンテキストと関連付けられているオブジェクトの場合(多
29
+ * - +nil+ :=
30
+ * コンテキストと関連付けられているオブジェクトの場合(多
31
31
  * くの場合)はコンテキストのエンコーディングを使用。
32
32
  *
33
33
  * それ以外のオブジェクトの場合(コンテキスト自身など)は
34
34
  * groongaのビルド時に指定したエンコーディング
35
- * (Groonga::Encoding::DEFAULT)を使用
35
+ * ( {Groonga::Encoding::DEFAULT} )を使用 =:
36
36
  *
37
- * [+:default+]
38
- * groongaのビルド時に指定したエンコーディングを使用。
39
- * Groonga::Encoding::DEFAULT
37
+ * - +:default+ :=
38
+ * groongaのビルド時に指定したエンコーディングを使用。
39
+ * {Groonga::Encoding::DEFAULT} =:
40
40
  *
41
- * [+:none+]
42
- * エンコーディングを指定しない。Groonga::Encoding::NONE
41
+ * - +:none+ :=
42
+ * エンコーディングを指定しない。{Groonga::Encoding::NONE} =:
43
43
  *
44
- * [+:euc_jp+]
45
- * EUC-JPを使用。Groonga::Encoding::EUC_JP
44
+ * - +:euc_jp+ :=
45
+ * EUC-JPを使用。{Groonga::Encoding::EUC_JP} =:
46
46
  *
47
- * [<tt>"euc-jp"</tt>]
48
- * +:euc_jp+と同じ。
47
+ * - @"euc-jp"@ :=
48
+ * +:euc_jp+と同じ。 =:
49
49
  *
50
- * [+:utf8+]
51
- * UTF-8を使用。Groonga::Encoding::UTF8
50
+ * - +:utf8+ :=
51
+ * UTF-8を使用。{Groonga::Encoding::UTF8} =:
52
52
  *
53
- * [<tt>"utf-8"</tt>]
54
- * +:utf8+と同じ。
53
+ * - @"utf-8"@ :=
54
+ * +:utf8+と同じ。 =:
55
55
  *
56
- * [+:sjis+]
57
- * Shift_JISを使用。Groonga::Encoding::SJIS
56
+ * - +:sjis+ :=
57
+ * Shift_JISを使用。{Groonga::Encoding::SJIS} =:
58
58
  *
59
- * [+:shift_jis+]
60
- * +:sjis+と同じ。
59
+ * - +:shift_jis+ :=
60
+ * +:sjis+と同じ。 =:
61
61
  *
62
- * [<tt>"shift-jis"</tt>]
63
- * +:sjis+と同じ。
62
+ * - @"shift-jis"@ :=
63
+ * +:sjis+と同じ。 =:
64
64
  *
65
- * [+:latin1+]
66
- * Latin-1を使用。Groonga::Encoding::LATIN1
65
+ * - +:latin1+ :=
66
+ * Latin-1を使用。{Groonga::Encoding::LATIN1} =:
67
67
  *
68
- * [+:koi8r+]
69
- * KOI8-Rを使用。Groonga::Encoding::KOI8R
68
+ * - +:koi8r+ :=
69
+ * KOI8-Rを使用。{Groonga::Encoding::KOI8R} =:
70
70
  */
71
71
 
72
72
  static VALUE mGrnEncoding;
@@ -207,7 +207,7 @@ rb_grn_encoding_s_get_default (VALUE self)
207
207
  * デフォルトのエンコーディングを設定する。
208
208
  * @overload default=(encoding)
209
209
  * @param [Groonga::Encoding] encoding 指定するエンコーディング。
210
- * エンコーディングの指定方法はGroonga::Encodingを参照。
210
+ * エンコーディングの指定方法は {Groonga::Encoding} を参照。
211
211
  */
212
212
  static VALUE
213
213
  rb_grn_encoding_s_set_default (VALUE self, VALUE rb_encoding)
@@ -235,10 +235,9 @@ rb_grn_expression_append_constant (int argc, VALUE *argv, VALUE self)
235
235
  }
236
236
 
237
237
  /*
238
- * call-seq:
239
- * expression.append_operation(operation, n_arguments)
240
- *
241
238
  * _n_arguments_ 個の引数を取る _operation_ を追加する。
239
+ *
240
+ * @overload append_operation(operation, n_arguments)
242
241
  */
243
242
  static VALUE
244
243
  rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
@@ -293,12 +292,12 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
293
292
  * 「文字列1 OR 文字列2」で「"文字列1"あるいは"文字列2"
294
293
  * にマッチという検索エンジンで利用できるような構文を使
295
294
  * う。
296
- * 参考: grn式のquery形式(link:text/expression_rdoc.html =:
295
+ * 参考: "Groongaのクエリ構文のドキュメント":http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html =:
297
296
  * - +nil+ :=
298
297
  * +:query+と同様 =:
299
298
  * - +:script+ :=
300
299
  * 「[カラム名] == [値]」というようにECMAScript風の構文を使う。
301
- * 参考: grn式のscript形式(link:text/expression_rdoc.html =:
300
+ * 参考: "Groongaのscript構文のドキュメント":http://groonga.org/ja/docs/reference/grn_expr/script_syntax.html =:
302
301
  * @option options :allow_pragma
303
302
  * _query_ の構文に query を用いているとき( +:syntax+
304
303
  * オプション参照)、「*E-1」というようにクエリの先頭で
@@ -307,7 +306,7 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
307
306
  *
308
307
  * デフォルトではプラグマを利用できる。
309
308
  *
310
- * 参考: grn式のquery形式(link:text/expression_rdoc.html
309
+ * 参考: "Groongaのクエリ構文のドキュメント":http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html
311
310
  * @option options :allow_column
312
311
  * _query_ の構文にqueryを用いているとき( +:syntax+ オプショ
313
312
  * ン参照)、「カラム名:値」というようにカラム名を指定した
@@ -316,7 +315,7 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
316
315
  *
317
316
  * デフォルトではカラム名を指定した条件式を利用できる。
318
317
  *
319
- * 参考: grn式のquery形式(link:text/expression_rdoc.html
318
+ * 参考: "Groongaのクエリ構文のドキュメント":http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html
320
319
  * @option options :allow_update
321
320
  * _query_ の構文にscriptを用いているとき( +:syntax+ オプショ
322
321
  * ン参照)、「カラム名 = 値」というように更新操作を利用で
@@ -325,7 +324,7 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
325
324
  *
326
325
  * デフォルトでは更新操作を利用できる。
327
326
  *
328
- * 参考: grn式のscript形式(link:text/expression_rdoc.html
327
+ * 参考: "Groongaのクエリ構文のドキュメント":http://groonga.org/ja/docs/reference/grn_expr/query_syntax.html
329
328
  */
330
329
  static VALUE
331
330
  rb_grn_expression_parse (int argc, VALUE *argv, VALUE self)
@@ -341,7 +340,7 @@ rb_grn_expression_parse (int argc, VALUE *argv, VALUE self)
341
340
  grn_expr_flags flags = 0;
342
341
  VALUE options, rb_query, rb_default_column, rb_default_operator;
343
342
  VALUE rb_default_mode, rb_syntax;
344
- VALUE rb_allow_pragma, rb_allow_column, rb_allow_update;
343
+ VALUE rb_allow_pragma, rb_allow_column, rb_allow_update, rb_allow_leading_not;
345
344
  VALUE exception = Qnil;
346
345
 
347
346
  rb_scan_args(argc, argv, "11", &rb_query, &options);
@@ -353,6 +352,7 @@ rb_grn_expression_parse (int argc, VALUE *argv, VALUE self)
353
352
  "allow_pragma", &rb_allow_pragma,
354
353
  "allow_column", &rb_allow_column,
355
354
  "allow_update", &rb_allow_update,
355
+ "allow_leading_not", &rb_allow_leading_not,
356
356
  NULL);
357
357
 
358
358
  query = StringValuePtr(rb_query);
@@ -417,6 +417,11 @@ rb_grn_expression_parse (int argc, VALUE *argv, VALUE self)
417
417
  flags |= GRN_EXPR_ALLOW_UPDATE;
418
418
  }
419
419
 
420
+ if (!NIL_P(rb_allow_leading_not)) {
421
+ if (RVAL2CBOOL(rb_allow_leading_not))
422
+ flags |= GRN_EXPR_ALLOW_LEADING_NOT;
423
+ }
424
+
420
425
  rc = grn_expr_parse(context, expression, query, query_size,
421
426
  default_column, default_mode, default_operator,
422
427
  flags);
@@ -436,10 +441,10 @@ rb_grn_expression_parse (int argc, VALUE *argv, VALUE self)
436
441
  }
437
442
 
438
443
  /*
439
- * call-seq:
440
- * expression.execute -> 値
444
+ * _expression_ を実行し、実行した結果を返す。
441
445
  *
442
- * _expression_を実行し、実行した結果を返す。
446
+ * @overload execute
447
+ * @return [値]
443
448
  */
444
449
  static VALUE
445
450
  rb_grn_expression_execute (VALUE self)
@@ -459,10 +464,9 @@ rb_grn_expression_execute (VALUE self)
459
464
  }
460
465
 
461
466
  /*
462
- * call-seq:
463
- * expression.compile
467
+ * _expression_ をコンパイルする。
464
468
  *
465
- * _expression_をコンパイルする。
469
+ * @overload compile
466
470
  */
467
471
  static VALUE
468
472
  rb_grn_expression_compile (VALUE self)
@@ -483,13 +487,14 @@ rb_grn_expression_compile (VALUE self)
483
487
  }
484
488
 
485
489
  /*
486
- * call-seq:
487
- * expression[name] -> 変数の値
488
- * expression[offset] -> 変数の値
490
+ * _expression_ で使用可能な変数のうち、名前が _name_
491
+ * または _offset_ 番目に {Expression#append_object}
492
+ * された変数の値を返す。
489
493
  *
490
- * _expression_ で使用可能な変数のうち、名前が _name_ または
491
- * _offset_ 番目にExpression#append_objectされた変数の値を返
492
- * す。
494
+ * @overload [](name)
495
+ * @return [変数の値]
496
+ * @overload [](offset)
497
+ * @return [変数の値]
493
498
  */
494
499
  static VALUE
495
500
  rb_grn_expression_array_reference (VALUE self, VALUE rb_name_or_offset)
@@ -528,10 +533,10 @@ rb_grn_expression_array_reference (VALUE self, VALUE rb_name_or_offset)
528
533
  grn_rc grn_expr_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *expr);
529
534
 
530
535
  /*
531
- * call-seq:
532
- * _expression_.inspect -> String
533
- *
534
536
  * _expression_ の中身を人に見やすい文字列で返す。
537
+ *
538
+ * @overload inspect
539
+ * @return [String]
535
540
  */
536
541
  static VALUE
537
542
  rb_grn_expression_inspect (VALUE self)
@@ -29,10 +29,10 @@ VALUE rb_cGrnFixSizeColumn;
29
29
  */
30
30
 
31
31
  /*
32
- * call-seq:
33
- * column[id] -> 値
34
- *
35
32
  * _column_ の _id_ に対応する値を返す。
33
+ *
34
+ * @overload column[id]
35
+ * @return [値]
36
36
  */
37
37
  VALUE
38
38
  rb_grn_fix_size_column_array_reference (VALUE self, VALUE rb_id)
@@ -118,11 +118,10 @@ rb_grn_fix_size_column_integer_set (int argc, VALUE *argv, VALUE self, int flags
118
118
  }
119
119
 
120
120
  /*
121
- * call-seq:
122
- * column.increment!(id, delta=nil)
123
- *
124
121
  * _column_ の _id_ に対応する値を _delta_ だけ増加する。 _delta_
125
122
  * が +nil+ の場合は1増加する。
123
+ *
124
+ * @overload increment!(id, delta=nil)
126
125
  */
127
126
  static VALUE
128
127
  rb_grn_fix_size_column_increment (int argc, VALUE *argv, VALUE self)
@@ -131,11 +130,10 @@ rb_grn_fix_size_column_increment (int argc, VALUE *argv, VALUE self)
131
130
  }
132
131
 
133
132
  /*
134
- * call-seq:
135
- * column.decrement!(id, delta=nil)
136
- *
137
133
  * _column_ の _id_ に対応する値を _delta_ だけ減少する。 _delta_
138
134
  * が +nil+ の場合は1減少する。
135
+ *
136
+ * @overload decrement!(id, delta=nil)
139
137
  */
140
138
  static VALUE
141
139
  rb_grn_fix_size_column_decrement (int argc, VALUE *argv, VALUE self)
@@ -23,9 +23,9 @@ VALUE rb_cGrnHashCursor;
23
23
  /*
24
24
  * Document-class: Groonga::HashCursor < Groonga::TableCursor
25
25
  *
26
- * Groonga::Hashに登録されているレコードを順番に取り出すため
27
- * のオブジェクト。利用できるメソッドはGroonga::TableCursor
28
- * とGroonga::TableCursorKeySupportを参照。
26
+ * {Groonga::Hash} に登録されているレコードを順番に取り出すため
27
+ * のオブジェクト。利用できるメソッドは {Groonga::TableCursor}
28
+ * と {Groonga::TableCursorKeySupport} を参照。
29
29
  */
30
30
 
31
31
  void
@@ -55,12 +55,12 @@ VALUE rb_cGrnHash;
55
55
  * (キーの種類を表すオブジェクトは文字列で指定。)
56
56
  * Groonga::Hash.create(:key_type => "ShortText")
57
57
  *
58
- * #キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
58
+ * #キーとしてBookmarksテーブルのレコードを使用す
59
59
  * る無名一時テーブルを生成する。
60
60
  * bookmarks = Groonga::Hash.create(:name => "Bookmarks")
61
61
  * Groonga::Hash.create(:key_type => bookmarks)
62
62
  *
63
- * #キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
63
+ * #キーとしてBookmarksテーブルのレコードを使用す
64
64
  * #る無名一時テーブルを生成する。(テーブルは文字列で指定。)
65
65
  * Groonga::Hash.create(:name => "Bookmarks")
66
66
  * Groonga::Hash.create(:key_type => "Bookmarks")
@@ -76,116 +76,65 @@ VALUE rb_cGrnHash;
76
76
  *
77
77
  * @overload create(options={})
78
78
  * @return [Groonga::Hash]
79
- * @param [::Hash] options The name and value
80
- * pairs. Omitted names are initialized as the default value
81
- * @option options [Groonga::Context] :context (Groonga::Context.default)
82
- * テーブルが利用するGroonga::Context。省略すると
83
- * Groonga::Context.defaultを用いる。
84
- * @option options [Groonga::Context#[]] :name
85
- * テーブルの名前。名前をつけると、Groonga::Context#[]に名
86
- * 前を指定してテーブルを取得することができる。省略すると
87
- * 無名テーブルになり、テーブルIDでのみ取得できる。
88
- * @option options [Groonga::Context#[]] :path
89
- * テーブルを保存するパス。パスを指定すると永続テーブルとな
90
- * り、プロセス終了後もレコードは保持される。次回起動時に
91
- * Groonga::Context#[]で保存されたレコードを利用することが
92
- * できる。省略すると一時テーブルになり、プロセスが終了する
93
- * とレコードは破棄される。
94
- * @option options :persistent
95
- * +true+ を指定すると永続テーブルとなる。 +path+ を省略した
96
- * 場合は自動的にパスが付加される。 +:context+ で指定した
97
- * Groonga::Contextに結びついているデータベースが一時デー
98
- * タベースの場合は例外が発生する。
99
- * @option options :key_normalize
100
- * +true+ を指定するとキーを正規化する。
101
- * @option options :key_type
102
- * キーの種類を示すオブジェクトを指定する。キーの種類には型
103
- * 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
104
- * テーブル(Groonga::Array、Groonga::Hash、
105
- * Groonga::PatriciaTrieのどれか)を指定する。
79
+ * @!macro hash.create.options
80
+ * @param [::Hash] options The name and value
81
+ * pairs. Omitted names are initialized as the default value
82
+ * @option options [Groonga::Context] :context (Groonga::Context.default)
83
+ * テーブルが利用する {Groonga::Context} 。省略すると
84
+ * {Groonga::Context.default} を用いる。
85
+ * @option options [Groonga::Context#[]] :name
86
+ * テーブルの名前。名前をつけると、 {Groonga::Context#[]} に名
87
+ * 前を指定してテーブルを取得することができる。省略すると
88
+ * 無名テーブルになり、テーブルIDでのみ取得できる。
89
+ * @option options [Groonga::Context#[]] :path
90
+ * テーブルを保存するパス。パスを指定すると永続テーブルとな
91
+ * り、プロセス終了後もレコードは保持される。次回起動時に
92
+ * {Groonga::Context#[]} で保存されたレコードを利用することが
93
+ * できる。省略すると一時テーブルになり、プロセスが終了する
94
+ * とレコードは破棄される。
95
+ * @option options :persistent
96
+ * +true+ を指定すると永続テーブルとなる。 +path+ を省略した
97
+ * 場合は自動的にパスが付加される。 +:context+ で指定した
98
+ * {Groonga::Context} に結びついているデータベースが一時デー
99
+ * タベースの場合は例外が発生する。
100
+ * @option options :key_normalize
101
+ * +true+ を指定するとキーを正規化する。
102
+ * @option options :key_type
103
+ * キーの種類を示すオブジェクトを指定する。キーの種類には型
104
+ * 名("Int32"や"ShortText"など)または {Groonga::Type} または
105
+ * テーブル( {Groonga::Array} 、 {Groonga::Hash} 、
106
+ * {Groonga::PatriciaTrie} のどれか)を指定する。
106
107
  *
107
- * Groonga::Typeを指定した場合は、その型が示す範囲の値をキー
108
- * として使用する。ただし、キーの最大サイズは4096バイトで
109
- * あるため、Groonga::Type::TEXTやGroonga::Type::LONG_TEXT
110
- * は使用できない。
108
+ * {Groonga::Type} を指定した場合は、その型が示す範囲の値をキー
109
+ * として使用する。ただし、キーの最大サイズは4096バイトで
110
+ * あるため、 {Groonga::Type::TEXT} {Groonga::Type::LONG_TEXT}
111
+ * は使用できない。
111
112
  *
112
- * テーブルを指定した場合はレコードIDをキーとして使用する。
113
- * 指定したテーブルのGroonga::Recordをキーとして使用するこ
114
- * ともでき、その場合は自動的にGroonga::Recordからレコード
115
- * IDを取得する。
113
+ * テーブルを指定した場合はレコードIDをキーとして使用する。
114
+ * 指定したテーブルの {Groonga::Record} をキーとして使用するこ
115
+ * ともでき、その場合は自動的に {Groonga::Record} からレコード
116
+ * IDを取得する。
116
117
  *
117
- * 省略した場合はShortText型をキーとして使用する。この場合、
118
- * 4096バイトまで使用可能である。
119
- * @option options :value_type
120
- * 値の型を指定する。省略すると値のための領域を確保しない。
121
- * 値を保存したい場合は必ず指定すること。
118
+ * 省略した場合はShortText型をキーとして使用する。この場合、
119
+ * 4096バイトまで使用可能である。
120
+ * @option options :value_type
121
+ * 値の型を指定する。省略すると値のための領域を確保しない。
122
+ * 値を保存したい場合は必ず指定すること。
122
123
  *
123
- * 参考: Groonga::Type.new
124
- * @option options [Groonga::IndexColumn] :default_tokenizer
125
- * Groonga::IndexColumnで使用するトークナイザを指定する。
126
- * デフォルトでは何も設定されていないので、テーブルに
127
- * Groonga::IndexColumnを定義する場合は
128
- * <tt>"TokenBigram"</tt>などを指定する必要がある。
129
- * @option options [Groonga::Record#n_sub_records] :sub_records
130
- * +true+ を指定すると#groupでグループ化したときに、
131
- * Groonga::Record#n_sub_recordsでグループに含まれるレコー
132
- * ドの件数を取得できる。
124
+ * 参考: {Groonga::Type.new}
125
+ * @option options [Groonga::IndexColumn] :default_tokenizer
126
+ * {Groonga::IndexColumn} で使用するトークナイザを指定する。
127
+ * デフォルトでは何も設定されていないので、テーブルに
128
+ * {Groonga::IndexColumn} を定義する場合は
129
+ * @"TokenBigram"@ などを指定する必要がある。
130
+ * @option options [Groonga::Record#n_sub_records] :sub_records
131
+ * +true+ を指定すると {#group} でグループ化したときに、
132
+ * {Groonga::Record#n_sub_records} でグループに含まれるレコー
133
+ * ドの件数を取得できる。
134
+ * @!macro hash.create.options
133
135
  * @overload create(options={})
134
136
  * @yield [table]
135
- * @param [::Hash] options The name and value
136
- * pairs. Omitted names are initialized as the default value
137
- * @option options [Groonga::Context] :context (Groonga::Context.default)
138
- * テーブルが利用するGroonga::Context。省略すると
139
- * Groonga::Context.defaultを用いる。
140
- * @option options [Groonga::Context#[]] :name
141
- * テーブルの名前。名前をつけると、Groonga::Context#[]に名
142
- * 前を指定してテーブルを取得することができる。省略すると
143
- * 無名テーブルになり、テーブルIDでのみ取得できる。
144
- * @option options [Groonga::Context#[]] :path
145
- * テーブルを保存するパス。パスを指定すると永続テーブルとな
146
- * り、プロセス終了後もレコードは保持される。次回起動時に
147
- * Groonga::Context#[]で保存されたレコードを利用することが
148
- * できる。省略すると一時テーブルになり、プロセスが終了する
149
- * とレコードは破棄される。
150
- * @option options :persistent
151
- * +true+ を指定すると永続テーブルとなる。 +path+ を省略した
152
- * 場合は自動的にパスが付加される。 +:context+ で指定した
153
- * Groonga::Contextに結びついているデータベースが一時デー
154
- * タベースの場合は例外が発生する。
155
- * @option options :key_normalize
156
- * +true+ を指定するとキーを正規化する。
157
- * @option options :key_type
158
- * キーの種類を示すオブジェクトを指定する。キーの種類には型
159
- * 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
160
- * テーブル(Groonga::Array、Groonga::Hash、
161
- * Groonga::PatriciaTrieのどれか)を指定する。
162
- *
163
- * Groonga::Typeを指定した場合は、その型が示す範囲の値をキー
164
- * として使用する。ただし、キーの最大サイズは4096バイトで
165
- * あるため、Groonga::Type::TEXTやGroonga::Type::LONG_TEXT
166
- * は使用できない。
167
- *
168
- * テーブルを指定した場合はレコードIDをキーとして使用する。
169
- * 指定したテーブルのGroonga::Recordをキーとして使用するこ
170
- * ともでき、その場合は自動的にGroonga::Recordからレコード
171
- * IDを取得する。
172
- *
173
- * 省略した場合はShortText型をキーとして使用する。この場合、
174
- * 4096バイトまで使用可能である。
175
- * @option options :value_type
176
- * 値の型を指定する。省略すると値のための領域を確保しない。
177
- * 値を保存したい場合は必ず指定すること。
178
- *
179
- * 参考: Groonga::Type.new
180
- * @option options [Groonga::IndexColumn] :default_tokenizer
181
- * Groonga::IndexColumnで使用するトークナイザを指定する。
182
- * デフォルトでは何も設定されていないので、テーブルに
183
- * Groonga::IndexColumnを定義する場合は
184
- * <tt>"TokenBigram"</tt>などを指定する必要がある。
185
- * @option options [Groonga::Record#n_sub_records] :sub_records
186
- * +true+ を指定すると#groupでグループ化したときに、
187
- * Groonga::Record#n_sub_recordsでグループに含まれるレコー
188
- * ドの件数を取得できる。
137
+ * @!macro hash.create.options
189
138
  */
190
139
  static VALUE
191
140
  rb_grn_hash_s_create (int argc, VALUE *argv, VALUE klass)
@@ -263,8 +212,8 @@ rb_grn_hash_s_create (int argc, VALUE *argv, VALUE klass)
263
212
 
264
213
  /*
265
214
  * _key_ にマッチするレコードのIDがキーに入っている
266
- * Groonga::Hashを返す。マッチするレコードがない場合は空の
267
- * Groonga::Hashが返る。
215
+ * {Groonga::Hash} を返す。マッチするレコードがない場合は空の
216
+ * {Groonga::Hash} が返る。
268
217
  *
269
218
  * _options_ で +:result+ を指定することにより、そのテーブルにマッ
270
219
  * チしたレコードIDがキーのレコードを追加することができる。