rroonga 1.2.9 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. data/Gemfile +1 -0
  2. data/Rakefile +1 -0
  3. data/bin/grntest-log-analyze +123 -0
  4. data/bin/groonga-query-log-extract +117 -0
  5. data/ext/groonga/rb-grn-accessor.c +7 -5
  6. data/ext/groonga/rb-grn-array-cursor.c +1 -1
  7. data/ext/groonga/rb-grn-array.c +34 -44
  8. data/ext/groonga/rb-grn-column.c +74 -38
  9. data/ext/groonga/rb-grn-context.c +19 -15
  10. data/ext/groonga/rb-grn-database.c +47 -42
  11. data/ext/groonga/rb-grn-double-array-trie-cursor.c +40 -0
  12. data/ext/groonga/rb-grn-double-array-trie.c +530 -0
  13. data/ext/groonga/rb-grn-encoding-support.c +1 -1
  14. data/ext/groonga/rb-grn-encoding.c +1 -1
  15. data/ext/groonga/rb-grn-exception.c +1 -1
  16. data/ext/groonga/rb-grn-expression-builder.c +1 -1
  17. data/ext/groonga/rb-grn-expression.c +63 -51
  18. data/ext/groonga/rb-grn-fix-size-column.c +7 -7
  19. data/ext/groonga/rb-grn-hash-cursor.c +1 -1
  20. data/ext/groonga/rb-grn-hash.c +42 -39
  21. data/ext/groonga/rb-grn-index-column.c +35 -31
  22. data/ext/groonga/rb-grn-index-cursor.c +1 -1
  23. data/ext/groonga/rb-grn-logger.c +23 -18
  24. data/ext/groonga/rb-grn-object.c +40 -27
  25. data/ext/groonga/rb-grn-operator.c +1 -1
  26. data/ext/groonga/rb-grn-patricia-trie-cursor.c +1 -1
  27. data/ext/groonga/rb-grn-patricia-trie.c +122 -90
  28. data/ext/groonga/rb-grn-plugin.c +8 -7
  29. data/ext/groonga/rb-grn-posting.c +1 -1
  30. data/ext/groonga/rb-grn-procedure.c +1 -1
  31. data/ext/groonga/rb-grn-query.c +12 -12
  32. data/ext/groonga/rb-grn-record.c +1 -1
  33. data/ext/groonga/rb-grn-snippet.c +26 -19
  34. data/ext/groonga/rb-grn-table-cursor-key-support.c +1 -1
  35. data/ext/groonga/rb-grn-table-cursor.c +4 -3
  36. data/ext/groonga/rb-grn-table-key-support.c +23 -23
  37. data/ext/groonga/rb-grn-table.c +268 -153
  38. data/ext/groonga/rb-grn-type.c +11 -7
  39. data/ext/groonga/rb-grn-utils.c +4 -1
  40. data/ext/groonga/rb-grn-variable-size-column.c +1 -1
  41. data/ext/groonga/rb-grn-variable.c +2 -2
  42. data/ext/groonga/rb-grn-view-accessor.c +1 -1
  43. data/ext/groonga/rb-grn-view-cursor.c +1 -1
  44. data/ext/groonga/rb-grn-view-record.c +1 -1
  45. data/ext/groonga/rb-grn-view.c +43 -34
  46. data/ext/groonga/rb-grn.h +6 -2
  47. data/ext/groonga/rb-groonga.c +1 -1
  48. data/lib/groonga.rb +4 -2
  49. data/lib/groonga/context.rb +16 -41
  50. data/lib/groonga/dumper.rb +6 -4
  51. data/lib/groonga/expression-builder.rb +52 -26
  52. data/lib/groonga/grntest-log.rb +206 -0
  53. data/lib/groonga/pagination.rb +21 -19
  54. data/lib/groonga/patricia-trie.rb +7 -10
  55. data/lib/groonga/posting.rb +1 -1
  56. data/lib/groonga/query-log.rb +348 -0
  57. data/lib/groonga/record.rb +47 -143
  58. data/lib/groonga/schema.rb +679 -406
  59. data/lib/groonga/view-record.rb +4 -10
  60. data/rroonga-build.rb +1 -1
  61. data/test/test-array.rb +25 -4
  62. data/test/test-column.rb +8 -8
  63. data/test/test-database.rb +2 -3
  64. data/test/test-double-array-trie.rb +164 -0
  65. data/test/test-expression-builder.rb +2 -2
  66. data/test/test-expression.rb +10 -9
  67. data/test/test-gqtp.rb +2 -2
  68. data/test/test-hash.rb +32 -8
  69. data/test/test-patricia-trie.rb +34 -10
  70. data/test/test-query-log.rb +258 -0
  71. data/test/test-record.rb +6 -5
  72. data/test/test-schema-create-table.rb +8 -0
  73. data/test/test-schema.rb +491 -234
  74. data/test/test-table.rb +17 -24
  75. metadata +123 -100
  76. data/ext/groonga/Makefile +0 -233
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -107,14 +107,16 @@ rb_grn_expression_initialize (int argc, VALUE *argv, VALUE self)
107
107
  * call-seq:
108
108
  * expression.define_variable(options={}) -> Groonga::Variable
109
109
  *
110
- * _expression_で使用可能な変数を作成する。
110
+ * _expression_ で使用可能な変数を作成する。
111
111
  *
112
- * _options_に指定可能な値は以下の通り。
112
+ * _options_ に指定可能な値は以下の通り。
113
+ * @param options [::Hash] The name and value
114
+ * pairs. Omitted names are initialized as the default value.
115
+ * @option options :name (false)
113
116
  *
114
- * [+:name+]
115
117
  * 変数の名前。省略した場合は名前を付けない。
118
+ * @option options :domain
116
119
  *
117
- * [+:domain+]
118
120
  * テーブルを指定すると、そのテーブル用のレコードとして初期化する。
119
121
  */
120
122
  static VALUE
@@ -160,7 +162,7 @@ rb_grn_expression_define_variable (int argc, VALUE *argv, VALUE self)
160
162
  * operation=Groonga::Operator::PUSH,
161
163
  * n_arguments=1) -> self
162
164
  *
163
- * _object_を追加し、_n_arguments_個の引数を取る_operation_を追加する。
165
+ * _object_ を追加し、 _n_arguments_ 個の引数を取る _operation_ を追加する。
164
166
  */
165
167
  static VALUE
166
168
  rb_grn_expression_append_object (int argc, VALUE *argv, VALUE self)
@@ -196,7 +198,7 @@ rb_grn_expression_append_object (int argc, VALUE *argv, VALUE self)
196
198
  * operation=Groonga::Operator::PUSH,
197
199
  * n_arguments=1) -> self
198
200
  *
199
- * _constant_を追加し、_n_arguments_個の引数を取る_operation_を追加する。
201
+ * _constant_ を追加し、 _n_arguments_ 個の引数を取る _operation_ を追加する。
200
202
  */
201
203
  static VALUE
202
204
  rb_grn_expression_append_constant (int argc, VALUE *argv, VALUE self)
@@ -233,7 +235,7 @@ rb_grn_expression_append_constant (int argc, VALUE *argv, VALUE self)
233
235
  * call-seq:
234
236
  * expression.append_operation(operation, n_arguments)
235
237
  *
236
- * _n_arguments_個の引数を取る_operation_を追加する。
238
+ * _n_arguments_ 個の引数を取る _operation_ を追加する。
237
239
  */
238
240
  static VALUE
239
241
  rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
@@ -259,19 +261,21 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
259
261
  * call-seq:
260
262
  * expression.parse(query, options={})
261
263
  *
262
- * 文字列_query_をパースする。
264
+ * 文字列 _query_ をパースする。
263
265
  *
264
- * _options_に指定可能な値は以下の通り。
266
+ * _options_ に指定可能な値は以下の通り。
267
+ * @param options [::Hash] The name and value
268
+ * pairs. Omitted names are initialized as the default value.
269
+ * @option options :default_column The default_column
265
270
  *
266
- * [+:default_column+]
267
271
  * "column_name:hoge"ではなく"hoge"のようにcolumn_nameが指
268
272
  * 定されない条件の検索対象となるカラムを指定する。
273
+ * @option options :default_operator (Groonga::Operator::AND)
269
274
  *
270
- * [+:default_operator+]
275
+ * The default_operator
271
276
  * "+"や"OR"で繋がれず、ただ列挙された複数の条件があった時、
272
- * _expression_全体として各レコードをヒットとみなすかの論理
277
+ * _expression_ 全体として各レコードをヒットとみなすかの論理
273
278
  * 条件を指定する。省略した場合はGroonga::Operator::AND。
274
- *
275
279
  * [Groonga::Operator::OR]
276
280
  * レコードはいずれかの条件にマッチすればいい。
277
281
  * [Groonga::Operator::AND]
@@ -279,15 +283,16 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
279
283
  * [Groonga::Operator::BUT]
280
284
  * 最初の条件にレコードはマッチし、残りの条件にレコードは
281
285
  * マッチしてはならない。
286
+ * @option options :default_mode (Groonga::Operator::MATCH) The default_mode
282
287
  *
283
- * [+:default_mode+]
284
288
  * 検索時のモードを指定する。省略した場合は
285
289
  * Groonga::Operator::MATCH。(FIXME: モードによってどう
286
290
  * いう動作になるかを書く。)
287
291
  *
288
- * [+:syntax+]
289
- * _query_の構文を指定する。指定可能な値は以下の通り。省略
290
- * した場合は+:query+。
292
+ * @option options :syntax (:query) The syntax
293
+ *
294
+ * _query_ の構文を指定する。指定可能な値は以下の通り。省略
295
+ * した場合は +:query+ 。
291
296
  *
292
297
  * [+nil+]
293
298
  * +:query+と同様。
@@ -303,18 +308,19 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
303
308
  *
304
309
  * 参考: grn式のscript形式(link:text/expression_rdoc.html)
305
310
  *
306
- * [+:allow_pragma+]
307
- * _query_の構文にqueryを用いているとき(+:syntax+オプショ
308
- * ン参照)、「*E-1」というようにクエリの先頭でpragmaを利
309
- * 用できるようにする。script構文を用いているときはこのオ
310
- * プションを利用できない。
311
+ * @option options :allow_pragma The allow_pragma
312
+ * _query_ の構文に query を用いているとき( +:syntax+
313
+ * オプション参照)、「*E-1」というようにクエリの先頭で
314
+ * pragmaを利用できるようにする。script構文を用いている
315
+ * ときはこのオプションを利用できない。
311
316
  *
312
317
  * デフォルトではプラグマを利用できる。
313
318
  *
314
319
  * 参考: grn式のquery形式(link:text/expression_rdoc.html)
315
320
  *
316
- * [+:allow_column+]
317
- * _query_の構文にqueryを用いているとき(+:syntax+オプショ
321
+ * @option options :allow_column The allow_column
322
+ *
323
+ * _query_ の構文にqueryを用いているとき(+:syntax+オプショ
318
324
  * ン参照)、「カラム名:値」というようにカラム名を指定した
319
325
  * 条件式を利用できるようにする。script構文を用いていると
320
326
  * きはこのオプションを利用できない。
@@ -323,8 +329,9 @@ rb_grn_expression_append_operation (VALUE self, VALUE rb_operation,
323
329
  *
324
330
  * 参考: grn式のquery形式(link:text/expression_rdoc.html)
325
331
  *
326
- * [+:allow_update+]
327
- * _query_の構文にscriptを用いているとき(+:syntax+オプショ
332
+ * @option options :allow_update The allow_update
333
+ *
334
+ * _query_の構文にscriptを用いているとき( +:syntax+ オプショ
328
335
  * ン参照)、「カラム名 = 値」というように更新操作を利用で
329
336
  * きるようにする。query構文を用いているときはこのオプショ
330
337
  * ンを利用できない。
@@ -493,8 +500,8 @@ rb_grn_expression_compile (VALUE self)
493
500
  * expression[name] -> 変数の値
494
501
  * expression[offset] -> 変数の値
495
502
  *
496
- * _expression_で使用可能な変数のうち、名前が_name_または
497
- * _offset_番目にExpression#append_objectされた変数の値を返
503
+ * _expression_ で使用可能な変数のうち、名前が _name_ または
504
+ * _offset_ 番目にExpression#append_objectされた変数の値を返
498
505
  * す。
499
506
  */
500
507
  static VALUE
@@ -537,7 +544,7 @@ grn_rc grn_expr_inspect(grn_ctx *ctx, grn_obj *buf, grn_obj *expr);
537
544
  * call-seq:
538
545
  * _expression_.inspect -> String
539
546
  *
540
- * _expression_の中身を人に見やすい文字列で返す。
547
+ * _expression_ の中身を人に見やすい文字列で返す。
541
548
  */
542
549
  static VALUE
543
550
  rb_grn_expression_inspect (VALUE self)
@@ -571,46 +578,51 @@ rb_grn_expression_inspect (VALUE self)
571
578
  * call-seq:
572
579
  * expression.snippet(tags, options) -> Groonga::Snippet
573
580
  *
574
- * _expression_からGroonga::Snippetを生成する。_tags_にはキー
575
- * ワードの前後に挿入するタグの配列を以下のような形式で指定
581
+ * _expression_ からGroonga::Snippetを生成する。 _tags_ には
582
+ * キーワードの前後に挿入するタグの配列を以下のような形式で指定
576
583
  * する。
577
- *
578
- * [
584
+ * <pre>
585
+ * ==[
579
586
  * ["キーワード前に挿入する文字列1", "キーワード後に挿入する文字列1"],
580
587
  * ["キーワード前に挿入する文字列2", "キーワード後に挿入する文字列2"],
581
588
  * ...,
582
- * ]
583
- *
584
- * もし、1つのスニペットの中に_tags_で指定したタグより多くの
589
+ * ]==
590
+ * </pre>
591
+ * もし、1つのスニペットの中に _tags_ で指定したタグより多くの
585
592
  * キーワードが含まれている場合は、以下のように、また、先頭
586
593
  * のタグから順番に使われる。
587
- *
588
- * expression.parse("Ruby groonga 検索")
594
+ * <pre>
595
+ * ==expression.parse("Ruby groonga 検索")
589
596
  * tags = [["<tag1>", "</tag1>"], ["<tag2>", "</tag2>"]]
590
597
  * snippet = expression.snippet(tags)
591
598
  * p snippet.execute("Rubyでgroonga使って全文検索、高速検索。")
592
- * # => ["<tag1>Ruby</tag1>で<tag2>groonga</tag2>"
593
- * # "使って全文<tag1>検索</tag1>、高速<tag2>検索</tag2>。"]
599
+ * => ["<tag1>Ruby</tag1>で<tag2>groonga</tag2>"
600
+ * => "使って全文<tag1>検索</tag1>、高速<tag2>検索</tag2>。"]==
601
+ * </pre>
594
602
  *
595
- * _options_に指定可能な値は以下の通り。
603
+ * _options_ に指定可能な値は以下の通り。
604
+ * @param options [::Hash] The name and value
605
+ * pairs. Omitted names are initialized as the default value.
606
+ * @option options :normalize (false) The normalize
596
607
  *
597
- * [+:normalize+]
598
608
  * キーワード文字列・スニペット元の文字列を正規化するかど
599
- * うか。省略した場合は+false+で正規化しない。
609
+ * うか。省略した場合は +false+ で正規化しない。
600
610
  *
601
- * [+:skip_leading_spaces+]
602
- * 先頭の空白を無視するかどうか。省略した場合は+false+で無
611
+ * @option options :skip_leading_spaces (false) The skip_leading_spaces
612
+ *
613
+ * 先頭の空白を無視するかどうか。省略した場合は +false+ で無
603
614
  * 視しない。
604
615
  *
605
- * [+:width+]
616
+ * @option options :width (100) The width
617
+ *
606
618
  * スニペット文字列の長さ。省略した場合は100文字。
619
+ * @option options :max_results (3) The max_results
607
620
  *
608
- * [+:max_results+]
609
621
  * 生成するスニペットの最大数。省略した場合は3。
622
+ * @option options :html_escape (false) The html_escape
610
623
  *
611
- * [+:html_escape+]
612
- * スニペット内の+<+, +>+, +&+, +"+をHTMLエスケープするか
613
- * どうか。省略した場合は+false+で、HTMLエスケープしない。
624
+ * スニペット内の +<+, +>+, +&+, +"+ をHTMLエスケープするか
625
+ * どうか。省略した場合は +false+ で、HTMLエスケープしない。
614
626
  */
615
627
  static VALUE
616
628
  rb_grn_expression_snippet (int argc, VALUE *argv, VALUE self)
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -32,7 +32,7 @@ VALUE rb_cGrnFixSizeColumn;
32
32
  * call-seq:
33
33
  * column[id] -> 値
34
34
  *
35
- * _column_の_id_に対応する値を返す。
35
+ * _column_ _id_ に対応する値を返す。
36
36
  */
37
37
  VALUE
38
38
  rb_grn_fix_size_column_array_reference (VALUE self, VALUE rb_id)
@@ -59,7 +59,7 @@ rb_grn_fix_size_column_array_reference (VALUE self, VALUE rb_id)
59
59
  * call-seq:
60
60
  * column[id] = value
61
61
  *
62
- * _column_の_id_に対応する値を設定する。
62
+ * _column_ _id_ に対応する値を設定する。
63
63
  */
64
64
  static VALUE
65
65
  rb_grn_fix_size_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
@@ -120,8 +120,8 @@ rb_grn_fix_size_column_integer_set (int argc, VALUE *argv, VALUE self, int flags
120
120
  * call-seq:
121
121
  * column.increment!(id, delta=nil)
122
122
  *
123
- * _column_の_id_に対応する値を_delta_だけ増加する。_delta_
124
- * が+nil+の場合は1増加する。
123
+ * _column_ _id_ に対応する値を _delta_ だけ増加する。 _delta_
124
+ * が +nil+ の場合は1増加する。
125
125
  */
126
126
  static VALUE
127
127
  rb_grn_fix_size_column_increment (int argc, VALUE *argv, VALUE self)
@@ -133,8 +133,8 @@ rb_grn_fix_size_column_increment (int argc, VALUE *argv, VALUE self)
133
133
  * call-seq:
134
134
  * column.decrement!(id, delta=nil)
135
135
  *
136
- * _column_の_id_に対応する値を_delta_だけ減少する。_delta_
137
- * が+nil+の場合は1減少する。
136
+ * _column_ _id_ に対応する値を _delta_ だけ減少する。 _delta_
137
+ * が +nil+ の場合は1減少する。
138
138
  */
139
139
  static VALUE
140
140
  rb_grn_fix_size_column_decrement (int argc, VALUE *argv, VALUE self)
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -1,4 +1,4 @@
1
- /* -*- c-file-style: "ruby" -*- */
1
+ /* -*- coding: utf-8; c-file-style: "ruby" -*- */
2
2
  /*
3
3
  Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
4
4
 
@@ -38,34 +38,37 @@ VALUE rb_cGrnHash;
38
38
  * 定すると、そのブロックに生成したテーブルが渡され、ブロック
39
39
  * を抜けると自動的にテーブルが破棄される。
40
40
  *
41
- * _options_に指定可能な値は以下の通り。
41
+ * _options_ に指定可能な値は以下の通り。
42
+ * @param [::Hash] options The name and value
43
+ * pairs. Omitted names are initialized as the default value
44
+ * @option options [Groonga::Context] :context (Groonga::Context.default) The context
42
45
  *
43
- * [+:context+]
44
46
  * テーブルが利用するGroonga::Context。省略すると
45
47
  * Groonga::Context.defaultを用いる。
48
+ * @option options [Groonga::Context#[]] :name The name
46
49
  *
47
- * [+:name+]
48
50
  * テーブルの名前。名前をつけると、Groonga::Context#[]に名
49
51
  * 前を指定してテーブルを取得することができる。省略すると
50
52
  * 無名テーブルになり、テーブルIDでのみ取得できる。
51
53
  *
52
- * [+:path+]
54
+ * @option options [Groonga::Context#[]] :path The path
55
+ *
53
56
  * テーブルを保存するパス。パスを指定すると永続テーブルとな
54
57
  * り、プロセス終了後もレコードは保持される。次回起動時に
55
58
  * Groonga::Context#[]で保存されたレコードを利用することが
56
59
  * できる。省略すると一時テーブルになり、プロセスが終了する
57
60
  * とレコードは破棄される。
58
61
  *
59
- * [+:persistent+]
60
- * +true+を指定すると永続テーブルとなる。+path+を省略した
61
- * 場合は自動的にパスが付加される。+:context+で指定した
62
+ * @option options :persistent The persistent
63
+ * +true+ を指定すると永続テーブルとなる。 +path+ を省略した
64
+ * 場合は自動的にパスが付加される。 +:context+ で指定した
62
65
  * Groonga::Contextに結びついているデータベースが一時デー
63
66
  * タベースの場合は例外が発生する。
64
67
  *
65
- * [+:key_normalize+]
66
- * +true+を指定するとキーを正規化する。
68
+ * @option options :key_normalize The normalize
69
+ * +true+ を指定するとキーを正規化する。
67
70
  *
68
- * [+:key_type+]
71
+ * @option options :key_type The key_type
69
72
  * キーの種類を示すオブジェクトを指定する。キーの種類には型
70
73
  * 名("Int32"や"ShortText"など)またはGroonga::Typeまたは
71
74
  * テーブル(Groonga::Array、Groonga::Hash、
@@ -84,60 +87,57 @@ VALUE rb_cGrnHash;
84
87
  * 省略した場合はShortText型をキーとして使用する。この場合、
85
88
  * 4096バイトまで使用可能である。
86
89
  *
87
- * [+:value_type+]
90
+ * @option options :value_type The value_type
91
+ *
88
92
  * 値の型を指定する。省略すると値のための領域を確保しない。
89
93
  * 値を保存したい場合は必ず指定すること。
90
94
  *
91
95
  * 参考: Groonga::Type.new
92
96
  *
93
- * [+:default_tokenizer+]
97
+ * @option options [Groonga::IndexColumn] :default_tokenizer The default_tokenizer
94
98
  * Groonga::IndexColumnで使用するトークナイザを指定する。
95
99
  * デフォルトでは何も設定されていないので、テーブルに
96
100
  * Groonga::IndexColumnを定義する場合は
97
101
  * <tt>"TokenBigram"</tt>などを指定する必要がある。
98
102
  *
99
- * [+:sub_records+]
100
- * +true+を指定すると#groupでグループ化したときに、
103
+ * @option options [Groonga::Record#n_sub_records] :sub_records The sub_records
104
+ * +true+ を指定すると#groupでグループ化したときに、
101
105
  * Groonga::Record#n_sub_recordsでグループに含まれるレコー
102
106
  * ドの件数を取得できる。
103
107
  *
104
- * 使用例:
105
- *
106
- * 無名一時テーブルを生成する。
108
+ * @example
109
+ * #無名一時テーブルを生成する。
107
110
  * Groonga::Hash.create
108
111
  *
109
- * 無名永続テーブルを生成する。
112
+ * #無名永続テーブルを生成する。
110
113
  * Groonga::Hash.create(:path => "/tmp/hash.grn")
111
114
  *
112
- * 名前付き永続テーブルを生成する。ただし、ファイル名は気に
113
- * しない。
115
+ * #名前付き永続テーブルを生成する。ただし、ファイル名は気にしない。
114
116
  * Groonga::Hash.create(:name => "Bookmarks",
115
117
  * :persistent => true)
116
118
  *
117
- * それぞれのレコードに512バイトの値を格納できる無名一時テー
118
- * ブルを生成する。
119
+ * #それぞれのレコードに512バイトの値を格納できる無名一時テーブルを生成する。
119
120
  * Groonga::Hash.create(:value => 512)
120
121
  *
121
- * キーとして文字列を使用する無名一時テーブルを生成する。
122
+ * #キーとして文字列を使用する無名一時テーブルを生成する。
122
123
  * Groonga::Hash.create(:key_type => Groonga::Type::SHORT_TEXT)
123
124
  *
124
- * キーとして文字列を使用する無名一時テーブルを生成する。
125
- * (キーの種類を表すオブジェクトは文字列で指定。)
125
+ * #キーとして文字列を使用する無名一時テーブルを生成する。
126
+ * (キーの種類を表すオブジェクトは文字列で指定。)
126
127
  * Groonga::Hash.create(:key_type => "ShortText")
127
128
  *
128
- * キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
129
- * る無名一時テーブルを生成する。
129
+ * #キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
130
+ * る無名一時テーブルを生成する。
130
131
  * bookmarks = Groonga::Hash.create(:name => "Bookmarks")
131
132
  * Groonga::Hash.create(:key_type => bookmarks)
132
133
  *
133
- * キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
134
- * る無名一時テーブルを生成する。
135
- * (テーブルは文字列で指定。)
134
+ * #キーとして<tt>Bookmarks</tt>テーブルのレコードを使用す
135
+ * #る無名一時テーブルを生成する。(テーブルは文字列で指定。)
136
136
  * Groonga::Hash.create(:name => "Bookmarks")
137
137
  * Groonga::Hash.create(:key_type => "Bookmarks")
138
138
  *
139
- * 全文検索用のトークンをバイグラムで切り出す無名一時テーブ
140
- * ルを生成する。
139
+ * #全文検索用のトークンをバイグラムで切り出す無名一時テーブ
140
+ * #ルを生成する。
141
141
  * bookmarks = Groonga::Hash.create(:name => "Bookmarks")
142
142
  * bookmarks.define_column("comment", "Text")
143
143
  * terms = Groonga::Hash.create(:name => "Terms",
@@ -223,20 +223,23 @@ rb_grn_hash_s_create (int argc, VALUE *argv, VALUE klass)
223
223
  * call-seq:
224
224
  * hash.search(key, options=nil) -> Groonga::Hash
225
225
  *
226
- * _key_にマッチするレコードのIDがキーに入っている
226
+ * _key_ にマッチするレコードのIDがキーに入っている
227
227
  * Groonga::Hashを返す。マッチするレコードがない場合は空の
228
228
  * Groonga::Hashが返る。
229
229
  *
230
- * _options_で+:result+を指定することにより、そのテーブルにマッ
230
+ * _options_ で +:result+ を指定することにより、そのテーブルにマッ
231
231
  * チしたレコードIDがキーのレコードを追加することができる。
232
- * +:result+にテーブルを指定した場合は、そのテーブルが返る。
232
+ * +:result+ にテーブルを指定した場合は、そのテーブルが返る。
233
+ *
234
+ * _options_ に指定可能な値は以下の通り。
235
+ * @param [::Hash] options The name and value
236
+ * pairs. Omitted names are initialized as the default value
233
237
  *
234
- * _options_に指定可能な値は以下の通り。
238
+ * @option options :result The result
235
239
  *
236
- * [+:result+]
237
240
  * 結果を格納するテーブル。
238
241
  *
239
- * 複数のキーで検索し、結果を1つのテーブルに集める。
242
+ * @example 複数のキーで検索し、結果を1つのテーブルに集める。
240
243
  * result = nil
241
244
  * keys = ["morita", "gunyara-kun", "yu"]
242
245
  * keys.each do |key|