rroonga 2.0.8-x86-mingw32 → 2.1.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (389) hide show
  1. data/README.textile +2 -2
  2. data/bin/groonga-index-dump +47 -0
  3. data/doc/text/news.textile +733 -0
  4. data/doc/text/tutorial.textile +535 -0
  5. data/example/bookmark.rb +1 -1
  6. data/ext/groonga/rb-grn-database.c +21 -24
  7. data/ext/groonga/rb-grn-double-array-trie.c +50 -58
  8. data/ext/groonga/rb-grn-exception.c +18 -1
  9. data/ext/groonga/rb-grn-hash.c +18 -3
  10. data/ext/groonga/rb-grn-index-column.c +50 -2
  11. data/ext/groonga/rb-grn-normalizer.c +83 -0
  12. data/ext/groonga/rb-grn-object.c +18 -14
  13. data/ext/groonga/rb-grn-patricia-trie.c +17 -2
  14. data/ext/groonga/rb-grn-query-logger.c +263 -0
  15. data/ext/groonga/rb-grn-snippet.c +6 -0
  16. data/ext/groonga/rb-grn-table-key-support.c +204 -13
  17. data/ext/groonga/rb-grn-table.c +124 -46
  18. data/ext/groonga/rb-grn.h +14 -3
  19. data/ext/groonga/rb-groonga.c +2 -0
  20. data/lib/1.8/groonga.so +0 -0
  21. data/lib/1.9/groonga.so +0 -0
  22. data/lib/groonga.rb +2 -1
  23. data/lib/groonga/database.rb +7 -0
  24. data/lib/groonga/dumper.rb +21 -2
  25. data/lib/groonga/index-column.rb +170 -0
  26. data/lib/groonga/query-logger.rb +129 -0
  27. data/lib/groonga/record.rb +32 -8
  28. data/lib/groonga/schema.rb +231 -288
  29. data/rroonga-build.rb +2 -2
  30. data/rroonga.gemspec +11 -7
  31. data/test/groonga-test-utils.rb +18 -6
  32. data/test/test-hash.rb +49 -20
  33. data/test/test-index-cursor.rb +4 -4
  34. data/{Gemfile → test/test-normalizer.rb} +9 -5
  35. data/test/test-pagination.rb +1 -1
  36. data/test/test-patricia-trie.rb +8 -0
  37. data/test/test-schema.rb +16 -13
  38. data/test/test-snippet.rb +5 -0
  39. data/test/test-table.rb +24 -12
  40. data/test/test-view.rb +0 -1
  41. data/vendor/local/bin/groonga-benchmark.exe +0 -0
  42. data/vendor/local/bin/groonga.exe +0 -0
  43. data/vendor/local/bin/libgroonga-0.dll +0 -0
  44. data/vendor/local/bin/libmecab-1.dll +0 -0
  45. data/vendor/local/bin/libmsgpack-3.dll +0 -0
  46. data/vendor/local/bin/libmsgpackc-2.dll +0 -0
  47. data/vendor/local/bin/mecab-config +2 -2
  48. data/vendor/local/bin/mecab.exe +0 -0
  49. data/vendor/local/etc/groonga/httpd/groonga-httpd.conf +2 -2
  50. data/vendor/local/include/groonga/groonga.h +25 -14
  51. data/vendor/local/include/groonga/groonga/normalizer.h +55 -0
  52. data/vendor/local/include/groonga/groonga/tokenizer.h +33 -13
  53. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
  54. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
  55. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
  56. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +2 -2
  57. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  58. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  59. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  60. data/vendor/local/lib/groonga/plugins/suggest/suggest.la +2 -2
  61. data/vendor/local/lib/groonga/plugins/table/table.a +0 -0
  62. data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
  63. data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
  64. data/vendor/local/lib/groonga/plugins/table/table.la +2 -2
  65. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  66. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  67. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  68. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +2 -2
  69. data/vendor/local/lib/libgroonga.a +0 -0
  70. data/vendor/local/lib/libgroonga.dll.a +0 -0
  71. data/vendor/local/lib/libgroonga.la +2 -2
  72. data/vendor/local/lib/libmecab.a +0 -0
  73. data/vendor/local/lib/libmecab.dll.a +0 -0
  74. data/vendor/local/lib/libmecab.la +1 -1
  75. data/vendor/local/lib/libmsgpack.a +0 -0
  76. data/vendor/local/lib/libmsgpack.dll.a +0 -0
  77. data/vendor/local/lib/libmsgpack.la +1 -1
  78. data/vendor/local/lib/libmsgpackc.a +0 -0
  79. data/vendor/local/lib/libmsgpackc.dll.a +0 -0
  80. data/vendor/local/lib/libmsgpackc.la +1 -1
  81. data/vendor/local/lib/pkgconfig/groonga.pc +3 -3
  82. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  83. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  84. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  85. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  86. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  87. data/vendor/local/sbin/groonga-httpd-restart +9 -3
  88. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  89. data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +6 -6
  90. data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
  91. data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +4 -4
  92. data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
  93. data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
  94. data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
  95. data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -42
  96. data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +16 -16
  97. data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +59 -0
  98. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/match_columns.txt +129 -0
  99. data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +0 -12
  100. data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +3 -3
  101. data/vendor/local/share/doc/groonga/en/html/characteristic.html +6 -6
  102. data/vendor/local/share/doc/groonga/en/html/community.html +6 -6
  103. data/vendor/local/share/doc/groonga/en/html/contribution.html +6 -6
  104. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +5 -5
  105. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +5 -5
  106. data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +5 -5
  107. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +5 -5
  108. data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +5 -5
  109. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
  110. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
  111. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
  112. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +5 -5
  113. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
  114. data/vendor/local/share/doc/groonga/en/html/development.html +6 -6
  115. data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +5 -5
  116. data/vendor/local/share/doc/groonga/en/html/genindex.html +6 -6
  117. data/vendor/local/share/doc/groonga/en/html/geolocation_search.html +6 -6
  118. data/vendor/local/share/doc/groonga/en/html/index.html +12 -12
  119. data/vendor/local/share/doc/groonga/en/html/install.html +10 -11
  120. data/vendor/local/share/doc/groonga/en/html/install/centos.html +11 -11
  121. data/vendor/local/share/doc/groonga/en/html/install/debian.html +8 -8
  122. data/vendor/local/share/doc/groonga/en/html/install/fedora.html +9 -9
  123. data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
  124. data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
  125. data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
  126. data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +16 -53
  127. data/vendor/local/share/doc/groonga/en/html/install/windows.html +16 -16
  128. data/vendor/local/share/doc/groonga/en/html/limitations.html +6 -6
  129. data/vendor/local/share/doc/groonga/en/html/news.html +146 -82
  130. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
  131. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
  132. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
  133. data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
  134. data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
  135. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  136. data/vendor/local/share/doc/groonga/en/html/reference.html +6 -6
  137. data/vendor/local/share/doc/groonga/en/html/reference/api.html +5 -5
  138. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +5 -5
  139. data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
  140. data/vendor/local/share/doc/groonga/en/html/reference/command.html +5 -5
  141. data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +5 -5
  142. data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +5 -5
  143. data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +5 -5
  144. data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +5 -5
  145. data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +5 -5
  146. data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +5 -5
  147. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +5 -5
  148. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +5 -5
  149. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +5 -5
  150. data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +5 -5
  151. data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +5 -5
  152. data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +5 -5
  153. data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +5 -5
  154. data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +5 -5
  155. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +5 -5
  156. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +5 -5
  157. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +5 -5
  158. data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +5 -5
  159. data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +5 -5
  160. data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +5 -5
  161. data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +5 -5
  162. data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +5 -5
  163. data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +5 -5
  164. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +5 -5
  165. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +5 -5
  166. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +5 -5
  167. data/vendor/local/share/doc/groonga/en/html/reference/commands/view_add.html +5 -5
  168. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/add.html +5 -5
  169. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/get.html +5 -5
  170. data/vendor/local/share/doc/groonga/en/html/reference/commands_not_implemented/set.html +5 -5
  171. data/vendor/local/share/doc/groonga/en/html/reference/executables.html +5 -5
  172. data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +5 -5
  173. data/vendor/local/share/doc/groonga/en/html/reference/executables/grntest.html +5 -5
  174. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +5 -5
  175. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +5 -5
  176. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  177. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +5 -5
  178. data/vendor/local/share/doc/groonga/en/html/reference/function.html +5 -5
  179. data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +5 -5
  180. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +5 -5
  181. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +5 -5
  182. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +5 -5
  183. data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +5 -5
  184. data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +5 -5
  185. data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +5 -5
  186. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +5 -5
  187. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +5 -5
  188. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +5 -5
  189. data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +5 -5
  190. data/vendor/local/share/doc/groonga/en/html/reference/log.html +5 -5
  191. data/vendor/local/share/doc/groonga/en/html/reference/output.html +5 -5
  192. data/vendor/local/share/doc/groonga/en/html/reference/pseudo_column.html +5 -5
  193. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +5 -5
  194. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +5 -5
  195. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +5 -5
  196. data/vendor/local/share/doc/groonga/en/html/reference/type.html +5 -5
  197. data/vendor/local/share/doc/groonga/en/html/search.html +6 -6
  198. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  199. data/vendor/local/share/doc/groonga/en/html/server.html +6 -6
  200. data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +5 -5
  201. data/vendor/local/share/doc/groonga/en/html/server/http.html +5 -5
  202. data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +5 -5
  203. data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +5 -5
  204. data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +5 -5
  205. data/vendor/local/share/doc/groonga/en/html/spec.html +6 -6
  206. data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
  207. data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
  208. data/vendor/local/share/doc/groonga/en/html/suggest.html +6 -6
  209. data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +5 -5
  210. data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +5 -5
  211. data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +5 -5
  212. data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +5 -5
  213. data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +5 -5
  214. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +6 -6
  215. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
  216. data/vendor/local/share/doc/groonga/en/html/tutorial.html +8 -7
  217. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +5 -5
  218. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
  219. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
  220. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +5 -5
  221. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
  222. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +265 -7
  223. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +5 -5
  224. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +5 -5
  225. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +5 -5
  226. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +5 -5
  227. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
  228. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  229. data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +6 -6
  230. data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
  231. data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +4 -4
  232. data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
  233. data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
  234. data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
  235. data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -42
  236. data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +16 -16
  237. data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +59 -0
  238. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/match_columns.txt +129 -0
  239. data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +0 -12
  240. data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +2 -2
  241. data/vendor/local/share/doc/groonga/ja/html/characteristic.html +6 -6
  242. data/vendor/local/share/doc/groonga/ja/html/community.html +6 -6
  243. data/vendor/local/share/doc/groonga/ja/html/contribution.html +9 -9
  244. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +5 -5
  245. data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +5 -5
  246. data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +5 -5
  247. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +5 -5
  248. data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +5 -5
  249. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
  250. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +6 -6
  251. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +6 -6
  252. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +6 -6
  253. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +5 -5
  254. data/vendor/local/share/doc/groonga/ja/html/development.html +6 -6
  255. data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +5 -5
  256. data/vendor/local/share/doc/groonga/ja/html/genindex.html +6 -6
  257. data/vendor/local/share/doc/groonga/ja/html/geolocation_search.html +6 -6
  258. data/vendor/local/share/doc/groonga/ja/html/index.html +12 -12
  259. data/vendor/local/share/doc/groonga/ja/html/install.html +10 -11
  260. data/vendor/local/share/doc/groonga/ja/html/install/centos.html +11 -11
  261. data/vendor/local/share/doc/groonga/ja/html/install/debian.html +8 -8
  262. data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +9 -9
  263. data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
  264. data/vendor/local/share/doc/groonga/ja/html/install/others.html +8 -8
  265. data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
  266. data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +16 -51
  267. data/vendor/local/share/doc/groonga/ja/html/install/windows.html +16 -16
  268. data/vendor/local/share/doc/groonga/ja/html/limitations.html +6 -6
  269. data/vendor/local/share/doc/groonga/ja/html/news.html +126 -82
  270. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
  271. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
  272. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
  273. data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +5 -5
  274. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
  275. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  276. data/vendor/local/share/doc/groonga/ja/html/reference.html +6 -6
  277. data/vendor/local/share/doc/groonga/ja/html/reference/api.html +5 -5
  278. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +5 -5
  279. data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
  280. data/vendor/local/share/doc/groonga/ja/html/reference/command.html +5 -5
  281. data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +5 -5
  282. data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +5 -5
  283. data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +5 -5
  284. data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +5 -5
  285. data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
  286. data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
  287. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +5 -5
  288. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +5 -5
  289. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +5 -5
  290. data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +5 -5
  291. data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +5 -5
  292. data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +5 -5
  293. data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +5 -5
  294. data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +5 -5
  295. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +5 -5
  296. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +5 -5
  297. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +5 -5
  298. data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +5 -5
  299. data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +5 -5
  300. data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +5 -5
  301. data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +5 -5
  302. data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +5 -5
  303. data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +5 -5
  304. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +5 -5
  305. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +5 -5
  306. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +5 -5
  307. data/vendor/local/share/doc/groonga/ja/html/reference/commands/view_add.html +5 -5
  308. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/add.html +5 -5
  309. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/get.html +5 -5
  310. data/vendor/local/share/doc/groonga/ja/html/reference/commands_not_implemented/set.html +5 -5
  311. data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
  312. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
  313. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grntest.html +5 -5
  314. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +5 -5
  315. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
  316. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
  317. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +5 -5
  318. data/vendor/local/share/doc/groonga/ja/html/reference/function.html +5 -5
  319. data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +5 -5
  320. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +5 -5
  321. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +5 -5
  322. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +5 -5
  323. data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +5 -5
  324. data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +5 -5
  325. data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +5 -5
  326. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +5 -5
  327. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +5 -5
  328. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +5 -5
  329. data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +5 -5
  330. data/vendor/local/share/doc/groonga/ja/html/reference/log.html +5 -5
  331. data/vendor/local/share/doc/groonga/ja/html/reference/output.html +5 -5
  332. data/vendor/local/share/doc/groonga/ja/html/reference/pseudo_column.html +5 -5
  333. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +5 -5
  334. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +5 -5
  335. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +5 -5
  336. data/vendor/local/share/doc/groonga/ja/html/reference/type.html +5 -5
  337. data/vendor/local/share/doc/groonga/ja/html/search.html +6 -6
  338. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  339. data/vendor/local/share/doc/groonga/ja/html/server.html +6 -6
  340. data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
  341. data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
  342. data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +5 -5
  343. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
  344. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
  345. data/vendor/local/share/doc/groonga/ja/html/spec.html +6 -6
  346. data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +5 -5
  347. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
  348. data/vendor/local/share/doc/groonga/ja/html/suggest.html +6 -6
  349. data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +5 -5
  350. data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +5 -5
  351. data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +5 -5
  352. data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +5 -5
  353. data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +5 -5
  354. data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +6 -6
  355. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
  356. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +8 -7
  357. data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +5 -5
  358. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +5 -5
  359. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +5 -5
  360. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +5 -5
  361. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +5 -5
  362. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +259 -7
  363. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +5 -5
  364. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +5 -5
  365. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +5 -5
  366. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +5 -5
  367. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
  368. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-data-with-three-relationship.log +23 -0
  369. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-data.log +16 -0
  370. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-schema-with-three-relationship.log +30 -0
  371. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-schema.log +20 -0
  372. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-select-with-three-relationship.log +86 -0
  373. data/vendor/local/share/doc/groonga/source/example/tutorial/match_columns-nested-index-select.log +41 -0
  374. data/vendor/local/share/doc/groonga/source/install/centos.txt +6 -6
  375. data/vendor/local/share/doc/groonga/source/install/debian.txt +3 -3
  376. data/vendor/local/share/doc/groonga/source/install/fedora.txt +4 -4
  377. data/vendor/local/share/doc/groonga/source/install/mac_os_x.txt +3 -3
  378. data/vendor/local/share/doc/groonga/source/install/others.txt +3 -3
  379. data/vendor/local/share/doc/groonga/source/install/solaris.txt +3 -3
  380. data/vendor/local/share/doc/groonga/source/install/ubuntu.txt +3 -42
  381. data/vendor/local/share/doc/groonga/source/install/windows.txt +16 -16
  382. data/vendor/local/share/doc/groonga/source/news.txt +59 -0
  383. data/vendor/local/share/doc/groonga/source/tutorial/match_columns.txt +129 -0
  384. data/vendor/local/share/man/ja/man1/groonga.1 +338 -93
  385. data/vendor/local/share/man/man1/groonga.1 +341 -92
  386. metadata +1258 -1242
  387. data/AUTHORS +0 -5
  388. data/Rakefile +0 -203
  389. data/bin/groonga-query-log-extract +0 -117
@@ -0,0 +1,129 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2012 Kouhei Sutou <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 version 2.1 as published by the Free Software Foundation.
8
+ #
9
+ # This library is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ # Lesser General Public License for more details.
13
+ #
14
+ # You should have received a copy of the GNU Lesser General Public
15
+ # License along with this library; if not, write to the Free Software
16
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
+
18
+ module Groonga
19
+ class QueryLogger
20
+ module Flags
21
+ LABELS = {
22
+ COMMAND => "command",
23
+ RESULT_CODE => "result_code",
24
+ DESTINATION => "destination",
25
+ CACHE => "cache",
26
+ SIZE => "size",
27
+ SCORE => "score",
28
+ }
29
+
30
+ class << self
31
+ def parse(input, base_flags)
32
+ # TODO
33
+ base_flags
34
+ end
35
+
36
+ def label(flags)
37
+ labels = []
38
+ LABELS.each do |flag, label|
39
+ flags << label if (flags & flag) == flag
40
+ end
41
+ labels << "none" if labels.empty?
42
+ labels.join("|")
43
+ end
44
+ end
45
+ end
46
+
47
+ def log(flag, timestamp, info, message)
48
+ guard do
49
+ puts("#{timestamp}|#{info}#{message}")
50
+ end
51
+ end
52
+
53
+ def reopen
54
+ end
55
+
56
+ def fin
57
+ end
58
+
59
+ private
60
+ def guard
61
+ begin
62
+ yield
63
+ rescue Exception
64
+ $stderr.puts("#{$!.class}: #{$!.message}")
65
+ $stderr.puts($@)
66
+ end
67
+ end
68
+ end
69
+
70
+ class FileQueryLogger < QueryLogger
71
+ def initialize(file_name)
72
+ super()
73
+ @file = nil
74
+ @file_name = file_name
75
+ end
76
+
77
+ def reopen
78
+ guard do
79
+ return unless @file
80
+ @file.close
81
+ @file = nil
82
+ end
83
+ end
84
+
85
+ def fin
86
+ guard do
87
+ return unless @file
88
+ @file.close
89
+ end
90
+ end
91
+
92
+ private
93
+ def ensure_open
94
+ return if @file
95
+ @file = File.open(@file_name, "ab")
96
+ end
97
+
98
+ def puts(*arguments)
99
+ ensure_open
100
+ @file.puts(*arguments)
101
+ @file.flush
102
+ end
103
+ end
104
+
105
+ class CallbackQueryLogger < QueryLogger
106
+ def initialize(callback)
107
+ super()
108
+ @callback = callback
109
+ end
110
+
111
+ def log(flag, timestamp, info, message)
112
+ guard do
113
+ @callback.call(:log, flag, timestamp, info, message)
114
+ end
115
+ end
116
+
117
+ def reopen
118
+ guard do
119
+ @callback.call(:reopen)
120
+ end
121
+ end
122
+
123
+ def fin
124
+ guard do
125
+ @callback.call(:fin)
126
+ end
127
+ end
128
+ end
129
+ end
@@ -140,6 +140,7 @@ module Groonga
140
140
  nil
141
141
  end
142
142
  end
143
+
143
144
  # レコードを一意に識別するための情報を返す。
144
145
  #
145
146
  # _record_ が所属するテーブルが {Groonga::Array} の場合はID
@@ -277,14 +278,9 @@ module Groonga
277
278
 
278
279
  # @private
279
280
  def methods(include_inherited=true)
280
- _methods = super
281
- return _methods unless include_inherited
282
- columns.each do |column|
283
- name = column.local_name
284
- _methods << name
285
- _methods << "#{name}="
286
- end
287
- _methods
281
+ original_methods = super
282
+ return original_methods unless include_inherited
283
+ (original_methods + dynamic_methods).uniq
288
284
  end
289
285
 
290
286
  # @private
@@ -313,6 +309,34 @@ module Groonga
313
309
  _column
314
310
  end
315
311
 
312
+ # @private
313
+ def dynamic_methods
314
+ @dynamic_methods ||= compute_dynamic_methods
315
+ end
316
+
317
+ def compute_dynamic_methods
318
+ methods = []
319
+
320
+ table = @table
321
+ while table
322
+ table.columns.each do |column|
323
+ name = column.local_name
324
+ methods << name.to_sym
325
+ methods << "#{name}=".to_sym
326
+ end
327
+ table = table.domain
328
+ break unless table.is_a?(Groonga::Table)
329
+ end
330
+
331
+ if private_methods.first.is_a?(String)
332
+ methods = methods.collect do |name|
333
+ name.to_s
334
+ end
335
+ end
336
+
337
+ methods
338
+ end
339
+
316
340
  def method_missing(name, *args, &block)
317
341
  if /=\z/ =~ name.to_s
318
342
  base_name = $PREMATCH
@@ -187,137 +187,230 @@ module Groonga
187
187
  #
188
188
  # _options_ に指定可能な値は以下の通り。
189
189
  # @overload create_table(name, options= {:type => :array}, &block)
190
- # @param [::Hash] options The name and value
191
- # pairs. Omitted names are initialized as the default value.
192
- # @option options :force The force
190
+ # @!macro [new] schema.create_table.array.options
191
+ # @param [::Hash] options The name and value
192
+ # pairs. Omitted names are initialized as the default value.
193
+ # @option options :force The force
193
194
  #
194
- # +true+ を指定すると既存の同名のテーブルが
195
- # 存在していても、強制的にテーブルを作成する。
196
- # @option options :type (:array) The type
195
+ # +true+ を指定すると既存の同名のテーブルが
196
+ # 存在していても、強制的にテーブルを作成する。
197
+ # @option options :type (:array) The type
197
198
  #
198
- # テーブルの型を指定する。
199
- # +:array+ , +:hash+ , +:patricia_trie+ ,
200
- # +:double_array_trie+ のいずれかを指定する。
201
- # (:key_typeの項も参照)
202
- # @option options [Groonga::Context] :context (Groonga::Context.default) The context
199
+ # テーブルの型を指定する。
200
+ # +:array+ , +:hash+ , +:patricia_trie+ ,
201
+ # +:double_array_trie+ のいずれかを指定する。
202
+ # (:key_typeの項も参照)
203
+ # @option options [Groonga::Context] :context (Groonga::Context.default) The context
203
204
  #
204
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
205
- # @option options :path The path
205
+ # スキーマ定義時に使用する {Groonga::Context} を指定する。
206
+ # @option options :path The path
206
207
  #
207
- # テーブルを保存するパスを指定する。
208
- # パスを指定すると永続テーブルになる。
209
- # @option options :persistent (true) The persistent
208
+ # テーブルを保存するパスを指定する。
209
+ # パスを指定すると永続テーブルになる。
210
+ # @option options :persistent (true) The persistent
210
211
  #
211
- # テーブルを永続テーブルとする。 +:path+ を省略した場合は
212
- # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
213
- # @option options :value_type (nil) The value_type
212
+ # テーブルを永続テーブルとする。 +:path+ を省略した場合は
213
+ # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
214
+ # @option options :value_type (nil) The value_type
214
215
  #
215
- # 値の型を指定する。省略すると値のための領域を確保しない。
216
- # 値を保存したい場合は必ず指定すること。
217
- # @option options :sub_records The sub_records
216
+ # 値の型を指定する。省略すると値のための領域を確保しない。
217
+ # 値を保存したい場合は必ず指定すること。
218
+ # @option options :sub_records The sub_records
218
219
  #
219
- # +true+ を指定すると {Groonga::Table#group} で
220
- # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
221
- # 含まれるレコードの件数を取得できる。
220
+ # +true+ を指定すると {Groonga::Table#group} で
221
+ # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
222
+ # 含まれるレコードの件数を取得できる。
223
+ # @!macro schema.create_table.array.options
222
224
  #
223
225
  # @overload create_table(name, options= {:type => :hash}, &block)
224
- # @param [::Hash] options The name and value
225
- # pairs. Omitted names are initialized as the default value.
226
- # @option options :force The force
227
- #
228
- # +true+ を指定すると既存の同名のテーブルが
229
- # 存在していても、強制的にテーブルを作成する。
230
- # @option options :type (:array) The type
231
- #
232
- # テーブルの型を指定する。
233
- # +:array+ , +:hash+ , +:patricia_trie+ ,
234
- # +:double_array_trie+ のいずれかを指定する。
235
- # (:key_typeの項も参照)
236
- # @option options [Groonga::Context] :context (Groonga::Context.default) The context
237
- #
238
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
239
- # @option options :path The path
240
- #
241
- # テーブルを保存するパスを指定する。
242
- # パスを指定すると永続テーブルになる。
243
- # @option options :persistent (true) The persistent
244
- #
245
- # テーブルを永続テーブルとする。 +:path+ を省略した場合は
246
- # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
247
- # @option options :value_type (nil) The value_type
248
- #
249
- # 値の型を指定する。省略すると値のための領域を確保しない。
250
- # 値を保存したい場合は必ず指定すること。
251
- # @option options :sub_records The sub_records
252
- #
253
- # +true+ を指定すると {Groonga::Table#group} で
254
- # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
255
- # 含まれるレコードの件数を取得できる。
256
- # @option options :key_type The key_type
257
- #
258
- # キーの種類を示すオブジェクトを指定する。
259
- # キーの種類には型名("Int32"や"ShortText"など)または {Groonga::Type}
260
- # またはテーブル( {Groonga::Array} 、 {Groonga::Hash} 、
261
- # {Groonga::PatriciaTrie} 、 {Groonga::DoubleArrayTrie}
262
- # どれか)を指定する。 {Groonga::Type} を指定した場合は、その型が示す範囲の
263
- # 値をキーとして使用する。ただし、キーの最大サイズは4096バイトで
264
- # あるため、 {Groonga::Type::TEXT} や {Groonga::Type::LONG_TEXT} は使用できない
265
- # 。テーブルを指定した場合はレコードIDをキーとして使用する。
266
- # 指定したテーブルの {Groonga::Record} をキーとして使用することもでき、
267
- # その場合は自動的に {Groonga::Record} からレコードIDを取得する。
268
- # 省略した場合は文字列をキーとして使用する。
269
- # この場合、4096バイトまで使用可能である。
270
- # @option options :default_tokenizer The default_tokenizer
271
- #
272
- # {Groonga::IndexColumn} で
273
- # 使用するトークナイザを指定する。デフォルトでは
274
- # 何も設定されていないので、テーブルに
275
- # {Groonga::IndexColumn} を定義する場合は @"TokenBigram"@
276
- # などを指定する必要がある。
277
- # @option options :key_normalize The key_normalize
278
- #
279
- # +true+ を指定するとキーを正規化する。
226
+ # @!macro [new] schema.create_table.hash.options
227
+ # @param [::Hash] options The name and value
228
+ # pairs. Omitted names are initialized as the default value.
229
+ # @option options :force The force
230
+ #
231
+ # +true+ を指定すると既存の同名のテーブルが
232
+ # 存在していても、強制的にテーブルを作成する。
233
+ # @option options :type (:array) The type
234
+ #
235
+ # テーブルの型を指定する。
236
+ # +:array+ , +:hash+ , +:patricia_trie+ ,
237
+ # +:double_array_trie+ のいずれかを指定する。
238
+ # (:key_typeの項も参照)
239
+ # @option options [Groonga::Context] :context (Groonga::Context.default) The context
240
+ #
241
+ # スキーマ定義時に使用する {Groonga::Context} を指定する。
242
+ # @option options :path The path
243
+ #
244
+ # テーブルを保存するパスを指定する。
245
+ # パスを指定すると永続テーブルになる。
246
+ # @option options :persistent (true) The persistent
247
+ #
248
+ # テーブルを永続テーブルとする。 +:path+ を省略した場合は
249
+ # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
250
+ # @option options :value_type (nil) The value_type
251
+ #
252
+ # 値の型を指定する。省略すると値のための領域を確保しない。
253
+ # 値を保存したい場合は必ず指定すること。
254
+ # @option options :sub_records The sub_records
255
+ #
256
+ # +true+ を指定すると {Groonga::Table#group}
257
+ # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
258
+ # 含まれるレコードの件数を取得できる。
259
+ # @option options :key_type The key_type
260
+ #
261
+ # キーの種類を示すオブジェクトを指定する。
262
+ # キーの種類には型名("Int32"や"ShortText"など)または {Groonga::Type}
263
+ # またはテーブル( {Groonga::Array} 、 {Groonga::Hash}
264
+ # {Groonga::PatriciaTrie} {Groonga::DoubleArrayTrie}
265
+ # どれか)を指定する。 {Groonga::Type} を指定した場合は、その型が示す範囲の
266
+ # 値をキーとして使用する。ただし、キーの最大サイズは4096バイトで
267
+ # あるため、 {Groonga::Type::TEXT} や {Groonga::Type::LONG_TEXT} は使用できない
268
+ # 。テーブルを指定した場合はレコードIDをキーとして使用する。
269
+ # 指定したテーブルの {Groonga::Record} をキーとして使用することもでき、
270
+ # その場合は自動的に {Groonga::Record} からレコードIDを取得する。
271
+ # 省略した場合は文字列をキーとして使用する。
272
+ # この場合、4096バイトまで使用可能である。
273
+ # @option options :default_tokenizer The default_tokenizer
274
+ #
275
+ # {Groonga::IndexColumn} で
276
+ # 使用するトークナイザを指定する。デフォルトでは
277
+ # 何も設定されていないので、テーブルに
278
+ # {Groonga::IndexColumn} を定義する場合は @"TokenBigram"@
279
+ # などを指定する必要がある。
280
+ #
281
+ # @option options :key_normalize (false) Keys are normalized
282
+ # if this value is @true@.
283
+ #
284
+ # @deprecated Use @:normalizer => "NormalizerAuto"@ instead.
285
+ #
286
+ # @option options [String, Groonga::Procedure, nil] :normalizer
287
+ # The normalizer that is used by {Groonga::IndexColumn}. You
288
+ # can specify this by normalizer name as String such as
289
+ # @"NormalizerAuto"@ or normalizer object.
290
+ # @!macro schema.create_table.hash.options
280
291
  #
281
292
  # @overload create_table(name, options= {:type => :patricia_trie}, &block)
282
- # @param [::Hash] options The name and value
283
- # pairs. Omitted names are initialized as the default value.
284
- # @option options :force The force
285
- #
286
- # +true+ を指定すると既存の同名のテーブルが
287
- # 存在していても、強制的にテーブルを作成する。
288
- # @option options :type (:array) The type
289
- #
290
- # テーブルの型を指定する。
291
- # +:array+ , +:hash+ , +:patricia_trie+ ,
292
- # +:double_array_trie+ のいずれかを指定する。
293
- # (:key_typeの項も参照)
294
- # @option options [Groonga::Context] :context (Groonga::Context.default) The context
295
- #
296
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
297
- # @option options :path The path
298
- #
299
- # テーブルを保存するパスを指定する。
300
- # パスを指定すると永続テーブルになる。
301
- # @option options :persistent (true) The persistent
302
- #
303
- # テーブルを永続テーブルとする。 +:path+ を省略した場合は
304
- # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
305
- # @option options :value_type (nil) The value_type
306
- #
307
- # 値の型を指定する。省略すると値のための領域を確保しない。
308
- # 値を保存したい場合は必ず指定すること。
309
- # @option options :sub_records The sub_records
310
- #
311
- # +true+ を指定すると {Groonga::Table#group} で
312
- # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
313
- # 含まれるレコードの件数を取得できる。
314
- # @option options :key_normalize The key_normalize
315
- #
316
- # +true+ を指定するとキーを正規化する。
317
- # @option options :key_with_sis The key_with_sis
318
- #
319
- # +true+ を指定するとキーの文字列の
320
- # 全suffixが自動的に登録される。
293
+ # @!macro [new] schema.create_table.patricia_trie.options
294
+ # @param [::Hash] options The name and value
295
+ # pairs. Omitted names are initialized as the default value.
296
+ # @option options :force The force
297
+ #
298
+ # +true+ を指定すると既存の同名のテーブルが
299
+ # 存在していても、強制的にテーブルを作成する。
300
+ # @option options :type (:array) The type
301
+ #
302
+ # テーブルの型を指定する。
303
+ # +:array+ , +:hash+ , +:patricia_trie+ ,
304
+ # +:double_array_trie+ のいずれかを指定する。
305
+ # (:key_typeの項も参照)
306
+ # @option options [Groonga::Context] :context (Groonga::Context.default) The context
307
+ #
308
+ # スキーマ定義時に使用する {Groonga::Context} を指定する。
309
+ # @option options :path The path
310
+ #
311
+ # テーブルを保存するパスを指定する。
312
+ # パスを指定すると永続テーブルになる。
313
+ # @option options :persistent (true) The persistent
314
+ #
315
+ # テーブルを永続テーブルとする。 +:path+ を省略した場合は
316
+ # パス名は自動的に作成される。デフォルトでは永続テーブルとなる。
317
+ # @option options :value_type (nil) The value_type
318
+ #
319
+ # 値の型を指定する。省略すると値のための領域を確保しない。
320
+ # 値を保存したい場合は必ず指定すること。
321
+ # @option options :sub_records The sub_records
322
+ #
323
+ # +true+ を指定すると {Groonga::Table#group}
324
+ # グループ化したときに、 {Groonga::Record#n_sub_records} でグループに
325
+ # 含まれるレコードの件数を取得できる。
326
+ #
327
+ # @option options :key_normalize (false) Keys are normalized
328
+ # if this value is @true@.
329
+ #
330
+ # @deprecated Use @:normalizer => "NormalizerAuto"@ instead.
331
+ #
332
+ # @option options [String, Groonga::Procedure, nil] :normalizer
333
+ # The normalizer that is used by {Groonga::IndexColumn}. You
334
+ # can specify this by normalizer name as String such as
335
+ # @"NormalizerAuto"@ or normalizer object.
336
+ #
337
+ # @option options :key_with_sis The key_with_sis
338
+ #
339
+ # +true+ を指定するとキーの文字列の
340
+ # 全suffixが自動的に登録される。
341
+ # @!macro schema.create_table.patricia_trie.options
342
+ # @overload create_table(name, options= {:type => :double_array_trie})
343
+ # :typeに:double_array_trieを使用した場合
344
+ # @!macro [new] schema.create_table.double_array_trie.options
345
+ # @param options [::Hash] The name and value
346
+ # pairs. Omitted names are initialized as the default value.
347
+ # @option options :force The force
348
+ #
349
+ # +true+ を指定すると既存の同名のテーブルが
350
+ # 存在していても、強制的にテーブルを作成する。
351
+ # @option options [Groonga::Context] :context The context
352
+ #
353
+ # スキーマ定義時に使用する {Groonga::Context} を指定する。
354
+ # 省略した場合は {Groonga::Schema.new} で指定した
355
+ # {Groonga::Context} を使用する。 {Groonga::Schema.new} で指
356
+ # 定していない場合は {Groonga::Context.default} を使用する。
357
+ # @option options :path The path
358
+ #
359
+ # テーブルを保存するパスを指定する。パスを指定すると
360
+ # 永続テーブルになる。
361
+ # @option options :persistent (true) The persistent
362
+ #
363
+ # テーブルを永続テーブルとする。 +:path:+ を省略した場
364
+ # 合はパス名は自動的に作成される。デフォルトでは永続
365
+ # テーブルとなる。
366
+ # @option options :value_type The value_type
367
+ #
368
+ # 値の型を指定する。省略すると値のための領域を確保しない。
369
+ # 値を保存したい場合は必ず指定すること。
370
+ # 参考: {Groonga::Type.new}
371
+ # @option options :sub_records The sub_records
372
+ #
373
+ # +true+ を指定すると {Groonga::Table#group} でグループ化
374
+ # したときに、 {Groonga::Record#n_sub_records} でグループに
375
+ # 含まれるレコードの件数を取得できる。
376
+ #
377
+ # @option options :key_normalize (false) Keys are normalized
378
+ # if this value is @true@.
379
+ #
380
+ # @deprecated Use @:normalizer => "NormalizerAuto"@ instead.
381
+ #
382
+ # @option options :key_type The key_type
383
+ #
384
+ # キーの種類を示すオブジェクトを指定する。
385
+ # キーの種類には型名("Int32"や"ShortText"など)または
386
+ # {Groonga::Type} またはテーブル( {Groonga::Array} 、
387
+ # {Groonga::Hash} 、 {Groonga::PatriciaTrie} 、
388
+ # {Groonga::DoubleArrayTrie} のどれか)を指定する。
389
+ #
390
+ # {Groonga::Type} を指定した場合は、その型が示す範囲の
391
+ # 値をキーとして使用する。ただし、キーの最大サイズは
392
+ # 4096バイトであるため、 {Groonga::Type::TEXT} や
393
+ # {Groonga::Type::LONG_TEXT} は使用できない。
394
+ #
395
+ # テーブルを指定した場合はレコードIDをキーとして使用
396
+ # する。指定したテーブルの {Groonga::Record} をキーとし
397
+ # て使用することもでき、その場合は自動的に
398
+ # {Groonga::Record} からレコードIDを取得する。
399
+ #
400
+ # 省略した場合は文字列をキーとして使用する。この場合、
401
+ # 4096バイトまで使用可能である。
402
+ # @option options :default_tokenizer The default_tokenizer
403
+ #
404
+ # {Groonga::IndexColumn} で使用するトークナイザを指定する。
405
+ # デフォルトでは何も設定されていないので、テーブルに
406
+ # {Groonga::IndexColumn} を定義する場合は
407
+ # @"TokenBigram"@ などを指定する必要がある。
408
+ #
409
+ # @option options [String, Groonga::Procedure, nil] :normalizer
410
+ # The normalizer that is used by {Groonga::IndexColumn}. You
411
+ # can specify this by normalizer name as String such as
412
+ # @"NormalizerAuto"@ or normalizer object.
413
+ # @!macro schema.create_table.double_array_trie.options
321
414
  def create_table(name, options={}, &block)
322
415
  define do |schema|
323
416
  schema.create_table(name, options, &block)
@@ -669,173 +762,16 @@ module Groonga
669
762
  #
670
763
  # テーブルの作成は {#define} を呼び出すまでは実行されないこ
671
764
  # とに注意すること。
672
- # @overload create_table(name, options= {:type => :array})
673
- # :typeにデフォルトの:arrayを使用した場合
674
- # @param options [::Hash] The name and value
675
- # pairs. Omitted names are initialized as the default value.
676
- # @option options :force The force.
677
- #
678
- # +true+ を指定すると既存の同名のテーブルが
679
- # 存在していても、強制的にテーブルを作成する。
680
- # @option options :type (:array) The type
681
- #
682
- # テーブルの型を指定する。
683
- # +:array+ , +:hash+ , +:patricia_trie+ ,
684
- # +:double_array_trie+ のいずれかを指定する。
685
- # @option options [Groonga::Context] :context The context.
686
- #
687
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
688
- # 省略した場合は {Groonga::Schema.new} で指定した
689
- # {Groonga::Context} を使用する。 {Groonga::Schema.new} で指
690
- # 定していない場合は {Groonga::Context.default} を使用する。
691
- # @option options :path The path
692
- #
693
- # テーブルを保存するパスを指定する。パスを指定すると
694
- # 永続テーブルになる。
695
- # @option options :persistent (true) The persistent
696
- #
697
- # テーブルを永続テーブルとする。 +:path:+ を省略した場
698
- # 合はパス名は自動的に作成される。デフォルトでは永続
699
- # テーブルとなる。
700
- # @option options :value_type The value_type
701
- #
702
- # 値の型を指定する。省略すると値のための領域を確保しない。
703
- # 値を保存したい場合は必ず指定すること。
704
- # 参考: {Groonga::Type.new}
705
- # @option options :sub_records The sub_records
706
- #
707
- # +true+ を指定すると {Groonga::Table#group} でグループ化
708
- # したときに、 {Groonga::Record#n_sub_records} でグループに
709
- # 含まれるレコードの件数を取得できる。
710
- #
711
- # @overload create_table(name, options= {:type => :hash})
712
- # :typeに:hashを使用した場合
713
- # @param options [::Hash] The name and value
714
- # pairs. Omitted names are initialized as the default value.
715
- # @option options :force The force
716
- #
717
- # +true+ を指定すると既存の同名のテーブルが
718
- # 存在していても、強制的にテーブルを作成する。
719
- # @option options :type (:array) The type
720
- #
721
- # テーブルの型を指定する。
722
- # +:array+ , +:hash+ , +:patricia_trie+ ,
723
- # +:double_array_trie+ のいずれかを指定する。
724
- # @option options [Groonga::Context] :context The context
725
- #
726
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
727
- # 省略した場合は {Groonga::Schema.new} で指定した
728
- # {Groonga::Context} を使用する。 {Groonga::Schema.new} で指
729
- # 定していない場合は {Groonga::Context.default} を使用する。
730
- # @option options :path The path
731
- #
732
- # テーブルを保存するパスを指定する。パスを指定すると
733
- # 永続テーブルになる。
734
- # @option options :persistent (true) The persistent
735
- #
736
- # テーブルを永続テーブルとする。 +:path:+ を省略した場
737
- # 合はパス名は自動的に作成される。デフォルトでは永続
738
- # テーブルとなる。
739
- # @option options :value_type The value_type
740
- #
741
- # 値の型を指定する。省略すると値のための領域を確保しない。
742
- # 値を保存したい場合は必ず指定すること。
743
- # 参考: {Groonga::Type.new}
744
- # @option options :sub_records The sub_records
745
- #
746
- # +true+ を指定すると {Groonga::Table#group} でグループ化
747
- # したときに、 {Groonga::Record#n_sub_records} でグループに
748
- # 含まれるレコードの件数を取得できる。
749
- # @option options :key_type The key_type
750
- #
751
- # キーの種類を示すオブジェクトを指定する。
752
- # キーの種類には型名("Int32"や"ShortText"など)または
753
- # {Groonga::Type} またはテーブル( {Groonga::Array} 、
754
- # {Groonga::Hash} 、 {Groonga::PatriciaTrie} 、
755
- # {Groonga::DoubleArrayTrie} のどれか)を指定する。
756
- #
757
- # {Groonga::Type} を指定した場合は、その型が示す範囲の
758
- # 値をキーとして使用する。ただし、キーの最大サイズは
759
- # 4096バイトであるため、 {Groonga::Type::TEXT} や
760
- # {Groonga::Type::LONG_TEXT} は使用できない。
761
- #
762
- # テーブルを指定した場合はレコードIDをキーとして使用
763
- # する。指定したテーブルの {Groonga::Record} をキーとし
764
- # て使用することもでき、その場合は自動的に
765
- # {Groonga::Record} からレコードIDを取得する。
766
- #
767
- # 省略した場合は文字列をキーとして使用する。この場合、
768
- # 4096バイトまで使用可能である。
769
- #
770
- # @option options :default_tokenizer The default_tokenizer
771
- #
772
- # {Groonga::IndexColumn} で使用するトークナイザを指定する。
773
- # デフォルトでは何も設定されていないので、テーブルに
774
- # {Groonga::IndexColumn} を定義する場合は
775
- # @"TokenBigram"@ などを指定する必要がある。
776
765
  #
766
+ # @overload create_table(name, options= {:type => :array}, &block)
767
+ # @!macro schema.create_table.array.options
768
+ # @overload create_table(name, options= {:type => :hash}, &block)
769
+ # @!macro schema.create_table.hash.options
770
+ # @overload create_table(name, options= {:type => :patricia_trie}, &block)
771
+ # @!macro schema.create_table.patricia_trie.options
777
772
  # @overload create_table(name, options= {:type => :double_array_trie})
778
773
  # :typeに:double_array_trieを使用した場合
779
- # @param options [::Hash] The name and value
780
- # pairs. Omitted names are initialized as the default value.
781
- # @option options :force The force
782
- #
783
- # +true+ を指定すると既存の同名のテーブルが
784
- # 存在していても、強制的にテーブルを作成する。
785
- # @option options [Groonga::Context] :context The context
786
- #
787
- # スキーマ定義時に使用する {Groonga::Context} を指定する。
788
- # 省略した場合は {Groonga::Schema.new} で指定した
789
- # {Groonga::Context} を使用する。 {Groonga::Schema.new} で指
790
- # 定していない場合は {Groonga::Context.default} を使用する。
791
- # @option options :path The path
792
- #
793
- # テーブルを保存するパスを指定する。パスを指定すると
794
- # 永続テーブルになる。
795
- # @option options :persistent (true) The persistent
796
- #
797
- # テーブルを永続テーブルとする。 +:path:+ を省略した場
798
- # 合はパス名は自動的に作成される。デフォルトでは永続
799
- # テーブルとなる。
800
- # @option options :value_type The value_type
801
- #
802
- # 値の型を指定する。省略すると値のための領域を確保しない。
803
- # 値を保存したい場合は必ず指定すること。
804
- # 参考: {Groonga::Type.new}
805
- # @option options :sub_records The sub_records
806
- #
807
- # +true+ を指定すると {Groonga::Table#group} でグループ化
808
- # したときに、 {Groonga::Record#n_sub_records} でグループに
809
- # 含まれるレコードの件数を取得できる。
810
- # @option options :key_normalize The key_normalize
811
- #
812
- # +true+ を指定するとキーを正規化する。
813
- # @option options :key_type The key_type
814
- #
815
- # キーの種類を示すオブジェクトを指定する。
816
- # キーの種類には型名("Int32"や"ShortText"など)または
817
- # {Groonga::Type} またはテーブル( {Groonga::Array} 、
818
- # {Groonga::Hash} 、 {Groonga::PatriciaTrie} 、
819
- # {Groonga::DoubleArrayTrie} のどれか)を指定する。
820
- #
821
- # {Groonga::Type} を指定した場合は、その型が示す範囲の
822
- # 値をキーとして使用する。ただし、キーの最大サイズは
823
- # 4096バイトであるため、 {Groonga::Type::TEXT} や
824
- # {Groonga::Type::LONG_TEXT} は使用できない。
825
- #
826
- # テーブルを指定した場合はレコードIDをキーとして使用
827
- # する。指定したテーブルの {Groonga::Record} をキーとし
828
- # て使用することもでき、その場合は自動的に
829
- # {Groonga::Record} からレコードIDを取得する。
830
- #
831
- # 省略した場合は文字列をキーとして使用する。この場合、
832
- # 4096バイトまで使用可能である。
833
- # @option options :default_tokenizer The default_tokenizer
834
- #
835
- # {Groonga::IndexColumn} で使用するトークナイザを指定する。
836
- # デフォルトでは何も設定されていないので、テーブルに
837
- # {Groonga::IndexColumn} を定義する場合は
838
- # @"TokenBigram"@ などを指定する必要がある。
774
+ # @!macro schema.create_table.double_array_trie.options
839
775
  def create_table(name, options={})
840
776
  definition = TableDefinition.new(name, @options.merge(options || {}))
841
777
  yield(definition) if block_given?
@@ -1420,7 +1356,8 @@ module Groonga
1420
1356
  :key_type, :value_type, :sub_records,
1421
1357
  :default_tokenizer,
1422
1358
  :key_normalize, :key_with_sis,
1423
- :named_path]
1359
+ :named_path,
1360
+ :normalizer]
1424
1361
  # @private
1425
1362
  def validate_options(options)
1426
1363
  return if options.nil?
@@ -1463,6 +1400,7 @@ module Groonga
1463
1400
  :key_type => normalize_key_type(@options[:key_type] || "ShortText"),
1464
1401
  :key_normalize => @options[:key_normalize],
1465
1402
  :default_tokenizer => normalize_type(@options[:default_tokenizer]),
1403
+ :normalizer => normalize_type(@options[:normalizer]),
1466
1404
  }
1467
1405
 
1468
1406
  if @table_type == Groonga::Array
@@ -1536,9 +1474,10 @@ module Groonga
1536
1474
  default_tokenizer = normalize_type(options[:default_tokenizer])
1537
1475
  default_tokenizer = resolve_name(default_tokenizer)
1538
1476
  return false unless table.default_tokenizer == default_tokenizer
1539
- key_normalize = options[:key_normalize]
1540
- key_normalize = false if key_normalize.nil?
1541
- return false unless table.normalize_key? == key_normalize
1477
+ normalizer = normalize_type(options[:normalizer])
1478
+ normalizer ||= default_normalizer_name if options[:key_normalize]
1479
+ normalizer = resolve_name(normalizer)
1480
+ return false unless table.normalizer == normalizer
1542
1481
  if table.is_a?(Groonga::PatriciaTrie)
1543
1482
  key_with_sis = options[:key_with_sis]
1544
1483
  key_with_sis = false if key_with_sis.nil?
@@ -1550,6 +1489,10 @@ module Groonga
1550
1489
  end
1551
1490
  end
1552
1491
 
1492
+ def default_normalizer_name
1493
+ "NormalizerAuto"
1494
+ end
1495
+
1553
1496
  def normalize_key_type(key_type)
1554
1497
  normalize_type(key_type || "ShortText")
1555
1498
  end