rroonga 1.3.0-x86-mingw32 → 1.3.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (334) hide show
  1. data/Rakefile +33 -2
  2. data/benchmark/common.rb +2 -2
  3. data/benchmark/read-write-many-small-items.rb +71 -62
  4. data/benchmark/write-many-small-items.rb +61 -53
  5. data/ext/groonga/rb-grn-context.c +23 -5
  6. data/ext/groonga/rb-grn-index-column.c +2 -6
  7. data/ext/groonga/rb-grn-operator.c +31 -1
  8. data/ext/groonga/rb-grn-variable-size-column.c +77 -1
  9. data/ext/groonga/rb-grn.h +2 -11
  10. data/ext/groonga/rb-groonga.c +1 -2
  11. data/lib/1.8/groonga.so +0 -0
  12. data/lib/1.9/groonga.so +0 -0
  13. data/lib/groonga/command.rb +169 -0
  14. data/lib/groonga/context.rb +4 -124
  15. data/lib/groonga/dumper.rb +10 -8
  16. data/lib/groonga/record.rb +7 -0
  17. data/lib/groonga/schema.rb +98 -7
  18. data/rroonga-build.rb +3 -3
  19. data/test/{test-context-select.rb → test-command-select.rb} +3 -3
  20. data/test/test-record.rb +18 -1
  21. data/test/test-schema-dumper.rb +48 -0
  22. data/test/test-schema-type.rb +35 -0
  23. data/test/test-schema.rb +81 -11
  24. data/test/test-table-select.rb +49 -38
  25. data/test/test-variable-size-column.rb +30 -0
  26. data/vendor/local/bin/grntest.exe +0 -0
  27. data/vendor/local/bin/groonga.exe +0 -0
  28. data/vendor/local/bin/libgroonga-0.dll +0 -0
  29. data/vendor/local/bin/libmecab-1.dll +0 -0
  30. data/vendor/local/bin/mecab.exe +0 -0
  31. data/vendor/local/include/groonga/groonga/plugin.h +3 -2
  32. data/vendor/local/include/groonga/groonga.h +106 -78
  33. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  34. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  35. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  36. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  37. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  38. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  39. data/vendor/local/lib/libgroonga.a +0 -0
  40. data/vendor/local/lib/libgroonga.dll.a +0 -0
  41. data/vendor/local/lib/libmecab.a +0 -0
  42. data/vendor/local/lib/libmecab.dll.a +0 -0
  43. data/vendor/local/lib/pkgconfig/groonga.pc +5 -2
  44. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  45. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  46. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  47. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  48. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  49. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  50. data/vendor/local/share/doc/groonga/en/html/_sources/characteristic.txt +42 -32
  51. data/vendor/local/share/doc/groonga/en/html/_sources/commands/delete.txt +5 -1
  52. data/vendor/local/share/doc/groonga/en/html/_sources/commands/table_create.txt +5 -2
  53. data/vendor/local/share/doc/groonga/en/html/_sources/community.txt +4 -3
  54. data/vendor/local/share/doc/groonga/en/html/_sources/contribution.txt +8 -6
  55. data/vendor/local/share/doc/groonga/en/html/_sources/functions/geo_distance.txt +42 -3
  56. data/vendor/local/share/doc/groonga/en/html/_sources/functions/geo_in_circle.txt +26 -1
  57. data/vendor/local/share/doc/groonga/en/html/_sources/index.txt +2 -2
  58. data/vendor/local/share/doc/groonga/en/html/_sources/install.txt +102 -27
  59. data/vendor/local/share/doc/groonga/en/html/_sources/limitations.txt +10 -10
  60. data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +130 -21
  61. data/vendor/local/share/doc/groonga/en/html/_sources/output.txt +164 -0
  62. data/vendor/local/share/doc/groonga/en/html/_sources/reference.txt +1 -0
  63. data/vendor/local/share/doc/groonga/en/html/_sources/suggest.txt +0 -5
  64. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/data.txt +6 -4
  65. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/drilldown.txt +1 -3
  66. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/index.txt +2 -1
  67. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/introduction.txt +95 -116
  68. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/match_columns.txt +1 -4
  69. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/micro_blog.txt +1 -4
  70. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/network.txt +3 -0
  71. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/patricia_trie.txt +1 -2
  72. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/query_expansion.txt +5 -0
  73. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/search.txt +3 -0
  74. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial.txt +2 -2
  75. data/vendor/local/share/doc/groonga/en/html/_sources/type.txt +3 -3
  76. data/vendor/local/share/doc/groonga/en/html/_static/basic.css +13 -1
  77. data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +5 -5
  78. data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +11 -7
  79. data/vendor/local/share/doc/groonga/en/html/_static/websupport.js +1 -1
  80. data/vendor/local/share/doc/groonga/en/html/characteristic.html +60 -52
  81. data/vendor/local/share/doc/groonga/en/html/command_version.html +30 -30
  82. data/vendor/local/share/doc/groonga/en/html/commands/cache_limit.html +34 -34
  83. data/vendor/local/share/doc/groonga/en/html/commands/check.html +34 -34
  84. data/vendor/local/share/doc/groonga/en/html/commands/clearlock.html +34 -34
  85. data/vendor/local/share/doc/groonga/en/html/commands/column_create.html +34 -34
  86. data/vendor/local/share/doc/groonga/en/html/commands/column_list.html +34 -34
  87. data/vendor/local/share/doc/groonga/en/html/commands/column_remove.html +34 -34
  88. data/vendor/local/share/doc/groonga/en/html/commands/define_selector.html +36 -36
  89. data/vendor/local/share/doc/groonga/en/html/commands/defrag.html +34 -34
  90. data/vendor/local/share/doc/groonga/en/html/commands/delete.html +38 -35
  91. data/vendor/local/share/doc/groonga/en/html/commands/dump.html +32 -32
  92. data/vendor/local/share/doc/groonga/en/html/commands/load.html +36 -36
  93. data/vendor/local/share/doc/groonga/en/html/commands/log_level.html +36 -36
  94. data/vendor/local/share/doc/groonga/en/html/commands/log_put.html +36 -36
  95. data/vendor/local/share/doc/groonga/en/html/commands/log_reopen.html +38 -38
  96. data/vendor/local/share/doc/groonga/en/html/commands/quit.html +32 -32
  97. data/vendor/local/share/doc/groonga/en/html/commands/select.html +38 -38
  98. data/vendor/local/share/doc/groonga/en/html/commands/shutdown.html +32 -32
  99. data/vendor/local/share/doc/groonga/en/html/commands/status.html +34 -34
  100. data/vendor/local/share/doc/groonga/en/html/commands/suggest.html +36 -36
  101. data/vendor/local/share/doc/groonga/en/html/commands/table_create.html +38 -36
  102. data/vendor/local/share/doc/groonga/en/html/commands/table_list.html +34 -34
  103. data/vendor/local/share/doc/groonga/en/html/commands/table_remove.html +34 -34
  104. data/vendor/local/share/doc/groonga/en/html/commands/view_add.html +34 -34
  105. data/vendor/local/share/doc/groonga/en/html/commands.html +41 -41
  106. data/vendor/local/share/doc/groonga/en/html/community.html +14 -12
  107. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +7 -7
  108. data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +7 -7
  109. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +7 -7
  110. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +7 -7
  111. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +7 -7
  112. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +7 -7
  113. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +7 -7
  114. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +7 -7
  115. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +7 -7
  116. data/vendor/local/share/doc/groonga/en/html/contribution.html +15 -13
  117. data/vendor/local/share/doc/groonga/en/html/executables/grnslap.html +7 -7
  118. data/vendor/local/share/doc/groonga/en/html/executables/grntest.html +7 -7
  119. data/vendor/local/share/doc/groonga/en/html/executables/groonga-http.html +7 -7
  120. data/vendor/local/share/doc/groonga/en/html/executables/groonga-suggest-create-dataset.html +12 -12
  121. data/vendor/local/share/doc/groonga/en/html/executables/groonga.html +7 -7
  122. data/vendor/local/share/doc/groonga/en/html/executables.html +7 -7
  123. data/vendor/local/share/doc/groonga/en/html/expr.html +25 -25
  124. data/vendor/local/share/doc/groonga/en/html/functions/edit_distance.html +32 -32
  125. data/vendor/local/share/doc/groonga/en/html/functions/geo_distance.html +71 -36
  126. data/vendor/local/share/doc/groonga/en/html/functions/geo_in_circle.html +53 -33
  127. data/vendor/local/share/doc/groonga/en/html/functions/geo_in_rectangle.html +32 -32
  128. data/vendor/local/share/doc/groonga/en/html/functions/now.html +30 -30
  129. data/vendor/local/share/doc/groonga/en/html/functions/rand.html +32 -32
  130. data/vendor/local/share/doc/groonga/en/html/functions.html +22 -22
  131. data/vendor/local/share/doc/groonga/en/html/genindex.html +7 -7
  132. data/vendor/local/share/doc/groonga/en/html/geolocation_search.html +7 -7
  133. data/vendor/local/share/doc/groonga/en/html/index.html +92 -87
  134. data/vendor/local/share/doc/groonga/en/html/install.html +109 -40
  135. data/vendor/local/share/doc/groonga/en/html/limitations.html +19 -19
  136. data/vendor/local/share/doc/groonga/en/html/log.html +21 -21
  137. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +7 -7
  138. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +7 -7
  139. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +7 -7
  140. data/vendor/local/share/doc/groonga/en/html/news/senna.html +7 -7
  141. data/vendor/local/share/doc/groonga/en/html/news.html +233 -112
  142. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  143. data/vendor/local/share/doc/groonga/en/html/output.html +302 -0
  144. data/vendor/local/share/doc/groonga/en/html/pseudo_column.html +21 -21
  145. data/vendor/local/share/doc/groonga/en/html/reference.html +59 -55
  146. data/vendor/local/share/doc/groonga/en/html/search.html +6 -6
  147. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  148. data/vendor/local/share/doc/groonga/en/html/spec/search.html +11 -11
  149. data/vendor/local/share/doc/groonga/en/html/spec.html +11 -11
  150. data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +7 -7
  151. data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +7 -7
  152. data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +7 -7
  153. data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +7 -7
  154. data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +7 -7
  155. data/vendor/local/share/doc/groonga/en/html/suggest.html +7 -12
  156. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +7 -7
  157. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +11 -11
  158. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +23 -23
  159. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +10 -10
  160. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +10 -10
  161. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +124 -164
  162. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +10 -10
  163. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +10 -10
  164. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +10 -10
  165. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +14 -14
  166. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +10 -10
  167. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +11 -10
  168. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +10 -10
  169. data/vendor/local/share/doc/groonga/en/html/tutorial.html +26 -26
  170. data/vendor/local/share/doc/groonga/en/html/type.html +31 -31
  171. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  172. data/vendor/local/share/doc/groonga/ja/html/_sources/characteristic.txt +42 -32
  173. data/vendor/local/share/doc/groonga/ja/html/_sources/commands/delete.txt +5 -1
  174. data/vendor/local/share/doc/groonga/ja/html/_sources/commands/table_create.txt +5 -2
  175. data/vendor/local/share/doc/groonga/ja/html/_sources/community.txt +4 -3
  176. data/vendor/local/share/doc/groonga/ja/html/_sources/contribution.txt +8 -6
  177. data/vendor/local/share/doc/groonga/ja/html/_sources/functions/geo_distance.txt +42 -3
  178. data/vendor/local/share/doc/groonga/ja/html/_sources/functions/geo_in_circle.txt +26 -1
  179. data/vendor/local/share/doc/groonga/ja/html/_sources/index.txt +2 -2
  180. data/vendor/local/share/doc/groonga/ja/html/_sources/install.txt +102 -27
  181. data/vendor/local/share/doc/groonga/ja/html/_sources/limitations.txt +10 -10
  182. data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +130 -21
  183. data/vendor/local/share/doc/groonga/ja/html/_sources/output.txt +164 -0
  184. data/vendor/local/share/doc/groonga/ja/html/_sources/reference.txt +1 -0
  185. data/vendor/local/share/doc/groonga/ja/html/_sources/suggest.txt +0 -5
  186. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/data.txt +6 -4
  187. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/drilldown.txt +1 -3
  188. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/index.txt +2 -1
  189. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/introduction.txt +95 -116
  190. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/match_columns.txt +1 -4
  191. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/micro_blog.txt +1 -4
  192. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/network.txt +3 -0
  193. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/patricia_trie.txt +1 -2
  194. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/query_expansion.txt +5 -0
  195. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/search.txt +3 -0
  196. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial.txt +2 -2
  197. data/vendor/local/share/doc/groonga/ja/html/_sources/type.txt +3 -3
  198. data/vendor/local/share/doc/groonga/ja/html/_static/basic.css +13 -1
  199. data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +5 -5
  200. data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +11 -7
  201. data/vendor/local/share/doc/groonga/ja/html/_static/websupport.js +1 -1
  202. data/vendor/local/share/doc/groonga/ja/html/characteristic.html +55 -47
  203. data/vendor/local/share/doc/groonga/ja/html/command_version.html +30 -30
  204. data/vendor/local/share/doc/groonga/ja/html/commands/cache_limit.html +34 -34
  205. data/vendor/local/share/doc/groonga/ja/html/commands/check.html +34 -34
  206. data/vendor/local/share/doc/groonga/ja/html/commands/clearlock.html +34 -34
  207. data/vendor/local/share/doc/groonga/ja/html/commands/column_create.html +34 -34
  208. data/vendor/local/share/doc/groonga/ja/html/commands/column_list.html +34 -34
  209. data/vendor/local/share/doc/groonga/ja/html/commands/column_remove.html +34 -34
  210. data/vendor/local/share/doc/groonga/ja/html/commands/define_selector.html +36 -36
  211. data/vendor/local/share/doc/groonga/ja/html/commands/defrag.html +34 -34
  212. data/vendor/local/share/doc/groonga/ja/html/commands/delete.html +38 -35
  213. data/vendor/local/share/doc/groonga/ja/html/commands/dump.html +32 -32
  214. data/vendor/local/share/doc/groonga/ja/html/commands/load.html +36 -36
  215. data/vendor/local/share/doc/groonga/ja/html/commands/log_level.html +36 -36
  216. data/vendor/local/share/doc/groonga/ja/html/commands/log_put.html +36 -36
  217. data/vendor/local/share/doc/groonga/ja/html/commands/log_reopen.html +38 -38
  218. data/vendor/local/share/doc/groonga/ja/html/commands/quit.html +32 -32
  219. data/vendor/local/share/doc/groonga/ja/html/commands/select.html +38 -38
  220. data/vendor/local/share/doc/groonga/ja/html/commands/shutdown.html +32 -32
  221. data/vendor/local/share/doc/groonga/ja/html/commands/status.html +34 -34
  222. data/vendor/local/share/doc/groonga/ja/html/commands/suggest.html +36 -36
  223. data/vendor/local/share/doc/groonga/ja/html/commands/table_create.html +38 -36
  224. data/vendor/local/share/doc/groonga/ja/html/commands/table_list.html +34 -34
  225. data/vendor/local/share/doc/groonga/ja/html/commands/table_remove.html +34 -34
  226. data/vendor/local/share/doc/groonga/ja/html/commands/view_add.html +34 -34
  227. data/vendor/local/share/doc/groonga/ja/html/commands.html +41 -41
  228. data/vendor/local/share/doc/groonga/ja/html/community.html +10 -8
  229. data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +7 -7
  230. data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +7 -7
  231. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +7 -7
  232. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +7 -7
  233. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +7 -7
  234. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +7 -7
  235. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +7 -7
  236. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +7 -7
  237. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +7 -7
  238. data/vendor/local/share/doc/groonga/ja/html/contribution.html +7 -7
  239. data/vendor/local/share/doc/groonga/ja/html/executables/grnslap.html +7 -7
  240. data/vendor/local/share/doc/groonga/ja/html/executables/grntest.html +7 -7
  241. data/vendor/local/share/doc/groonga/ja/html/executables/groonga-http.html +7 -7
  242. data/vendor/local/share/doc/groonga/ja/html/executables/groonga-suggest-create-dataset.html +12 -12
  243. data/vendor/local/share/doc/groonga/ja/html/executables/groonga.html +7 -7
  244. data/vendor/local/share/doc/groonga/ja/html/executables.html +7 -7
  245. data/vendor/local/share/doc/groonga/ja/html/expr.html +25 -25
  246. data/vendor/local/share/doc/groonga/ja/html/functions/edit_distance.html +32 -32
  247. data/vendor/local/share/doc/groonga/ja/html/functions/geo_distance.html +71 -36
  248. data/vendor/local/share/doc/groonga/ja/html/functions/geo_in_circle.html +53 -33
  249. data/vendor/local/share/doc/groonga/ja/html/functions/geo_in_rectangle.html +32 -32
  250. data/vendor/local/share/doc/groonga/ja/html/functions/now.html +30 -30
  251. data/vendor/local/share/doc/groonga/ja/html/functions/rand.html +32 -32
  252. data/vendor/local/share/doc/groonga/ja/html/functions.html +22 -22
  253. data/vendor/local/share/doc/groonga/ja/html/genindex.html +7 -7
  254. data/vendor/local/share/doc/groonga/ja/html/geolocation_search.html +7 -7
  255. data/vendor/local/share/doc/groonga/ja/html/index.html +84 -79
  256. data/vendor/local/share/doc/groonga/ja/html/install.html +92 -16
  257. data/vendor/local/share/doc/groonga/ja/html/limitations.html +13 -13
  258. data/vendor/local/share/doc/groonga/ja/html/log.html +21 -21
  259. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +7 -7
  260. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +7 -7
  261. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +7 -7
  262. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +7 -7
  263. data/vendor/local/share/doc/groonga/ja/html/news.html +202 -99
  264. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  265. data/vendor/local/share/doc/groonga/ja/html/output.html +287 -0
  266. data/vendor/local/share/doc/groonga/ja/html/pseudo_column.html +21 -21
  267. data/vendor/local/share/doc/groonga/ja/html/reference.html +59 -55
  268. data/vendor/local/share/doc/groonga/ja/html/search.html +6 -6
  269. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  270. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +7 -7
  271. data/vendor/local/share/doc/groonga/ja/html/spec.html +11 -11
  272. data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +7 -7
  273. data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +7 -7
  274. data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +7 -7
  275. data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +7 -7
  276. data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +7 -7
  277. data/vendor/local/share/doc/groonga/ja/html/suggest.html +7 -11
  278. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +7 -7
  279. data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +7 -7
  280. data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +20 -20
  281. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +7 -7
  282. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +7 -7
  283. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +93 -115
  284. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +7 -7
  285. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +7 -7
  286. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +7 -7
  287. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +8 -8
  288. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +7 -7
  289. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +8 -7
  290. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +7 -7
  291. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +21 -21
  292. data/vendor/local/share/doc/groonga/ja/html/type.html +31 -31
  293. data/vendor/local/share/doc/groonga/source/characteristic.txt +42 -32
  294. data/vendor/local/share/doc/groonga/source/commands/delete.txt +5 -1
  295. data/vendor/local/share/doc/groonga/source/commands/table_create.txt +5 -2
  296. data/vendor/local/share/doc/groonga/source/community.txt +4 -3
  297. data/vendor/local/share/doc/groonga/source/contribution.txt +8 -6
  298. data/vendor/local/share/doc/groonga/source/example/tutorial/data-1.log +8 -8
  299. data/vendor/local/share/doc/groonga/source/example/tutorial/data-2.log +4 -4
  300. data/vendor/local/share/doc/groonga/source/example/tutorial/data-3.log +4 -4
  301. data/vendor/local/share/doc/groonga/source/example/tutorial/introduction-1.log +3 -15
  302. data/vendor/local/share/doc/groonga/source/example/tutorial/introduction-2.log +2 -7
  303. data/vendor/local/share/doc/groonga/source/example/tutorial/introduction-3.log +2 -7
  304. data/vendor/local/share/doc/groonga/source/functions/geo_distance.txt +42 -3
  305. data/vendor/local/share/doc/groonga/source/functions/geo_in_circle.txt +26 -1
  306. data/vendor/local/share/doc/groonga/source/index.txt +2 -2
  307. data/vendor/local/share/doc/groonga/source/install.txt +102 -27
  308. data/vendor/local/share/doc/groonga/source/limitations.txt +10 -10
  309. data/vendor/local/share/doc/groonga/source/news.txt +130 -21
  310. data/vendor/local/share/doc/groonga/source/output.txt +164 -0
  311. data/vendor/local/share/doc/groonga/source/reference.txt +1 -0
  312. data/vendor/local/share/doc/groonga/source/suggest.txt +0 -5
  313. data/vendor/local/share/doc/groonga/source/tutorial/data.txt +6 -4
  314. data/vendor/local/share/doc/groonga/source/tutorial/drilldown.txt +1 -3
  315. data/vendor/local/share/doc/groonga/source/tutorial/index.txt +2 -1
  316. data/vendor/local/share/doc/groonga/source/tutorial/introduction.txt +95 -116
  317. data/vendor/local/share/doc/groonga/source/tutorial/match_columns.txt +1 -4
  318. data/vendor/local/share/doc/groonga/source/tutorial/micro_blog.txt +1 -4
  319. data/vendor/local/share/doc/groonga/source/tutorial/network.txt +3 -0
  320. data/vendor/local/share/doc/groonga/source/tutorial/patricia_trie.txt +1 -2
  321. data/vendor/local/share/doc/groonga/source/tutorial/query_expansion.txt +5 -0
  322. data/vendor/local/share/doc/groonga/source/tutorial/search.txt +3 -0
  323. data/vendor/local/share/doc/groonga/source/tutorial.txt +2 -2
  324. data/vendor/local/share/doc/groonga/source/type.txt +3 -3
  325. data/vendor/local/share/groonga/examples/dictionary/html/js/dictionary.js +1 -0
  326. data/vendor/local/share/groonga/html/admin/index.html +40 -0
  327. data/vendor/local/share/groonga/html/admin/js/jquery.flot-0.7.min.js +6 -0
  328. data/vendor/local/share/groonga/html/admin/js/jquery.flot.license.txt +22 -0
  329. data/vendor/local/share/man/ja/man1/groonga.1 +560 -138
  330. data/vendor/local/share/man/man1/groonga.1 +637 -223
  331. metadata +887 -898
  332. data/ext/groonga/Makefile +0 -184
  333. data/ext/groonga/rb-grn-query.c +0 -260
  334. data/test/test-query.rb +0 -22
@@ -1,4 +1,4 @@
1
- .TH "GROONGA" "1" "20111127 日" "1.2.7" "groonga"
1
+ .TH "GROONGA" "1" "20120129 日" "1.2.9" "groonga"
2
2
  .SH NAME
3
3
  groonga \- groongaのドキュメント
4
4
  .
@@ -35,42 +35,51 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
35
35
  \fBnews\fP
36
36
  .UNINDENT
37
37
  .SH GROONGAの特徴
38
- .SS 全文検索ライブラリSennaの後継
38
+ .SS groonga の概要
39
39
  .sp
40
- groongaは、広く使われている全文検索ライブラリSennaの後継として開発されています。Sennaの特徴である、高速・高精度・高柔軟性という特徴を引き継ぎつつ、さらにそれらの特徴を追求するために開発が始められました。
41
- .SS HTTPなどの複数プロトコルに対応したサーバ
40
+ groonga は転置索引を用いた高速・高精度な全文検索エンジンであり、登録された文書をすぐに検索結果に反映できます。また、参照をブロックせずに更新できることから、即時更新の必要なアプリケーションにおいても高い性能を発揮します。
42
41
  .sp
43
- Sennaは、全文検索を行うアプリケーションで用いるための部品でした。groongaでは、全文検索サービスを行うためのサーバが存在します。groongaサーバは、HTTPmemcached binaryプロトコル、独自プロトコルであるgqtpを用いてクライアントとTCP/IP通信を行うことができます。よって、ライブラリをインストールできないレンタルサーバなどの環境でも利用しやすくなりました。
42
+ 全文検索エンジンとして開発された groonga ですが、独自のカラムストアを持つ列指向のデータベースとしての側面も持っています。そのため、MySQL PostgreSQL など、既存の代表的なデータベースが苦手とする集計クエリを高速に処理できるという特徴があり、組み合わせによって弱点を補うような使い方もできます。
44
43
  .sp
45
- Sennaと同様に、groongaC言語のライブラリとして利用できます。
46
- .SS 高速なデータ更新
44
+ groonga の基本機能は C ライブラリとして提供されていますが、MySQL や PostgreSQL と連携させたり、Ruby から呼び出したりすることもできます。そのため、任意のアプリケーションに組み込むことが可能であり、多様な使い方が考えられます。 興味のある方は \fI\%利用例\fP をご覧ください。
45
+ .SS 全文検索と即時更新
47
46
  .sp
48
- groongaの前身であるSennaは、ストレージを持たない全文検索ライブラリでした。そのため、MySQLのMyISAMストレージエンジンと組み合わせて用いるTritonnや、PostgreSQLと組み合わせて用いるLudiaを通じて利用するのが一般的でした。しかし、これらの形態では、全文検索インデックス更新における参照lockが不要というSennaの性能特性を生かすことができませんでした。
47
+ 一般的なデータベースにおいては、追加・削除などの操作がすぐに反映されます。一方、全文検索においては、転置索引が逐次更新の難しいデータ構造であることから、文書の追加・削除に対応しないエンジンが少なくありません。
49
48
  .sp
50
- たとえば、MyISAMではレコードが更新される際には、多くの場合テーブルロックが必要となります。このような場合には、いかに全文検索インデックスの更新が速くとも、MyISAMでのデータ更新がボトルネックとなってしまいます。
49
+ これに対し、転置索引を用いた全文検索エンジンでありながら、groonga は文書を短時間で追加・削除することができます。その上、更新しながらでも検索できるという優れた特徴を持っているため、全文検索エンジンとしてはとても柔軟性があります。また、複数の転置索引を統合するような重い処理を必要としないので、安定して高い性能を発揮することが期待できます。
50
+ .SS カラムストアと集計クエリ
51
51
  .sp
52
- より即時性の高い検索サービスを実現するために、groongaでは参照lockが不要なストレージを実装しました。
53
- .SS 複数プロセス・複数スレッドで共有できるストレージ
52
+ 現代は、インターネットを情報源とすれば、いくらでも情報を収集できる時代です。しかし、膨大な情報から有益な情報を引き出すのは困難であり、多面的な分析による試行錯誤が必要となります。たとえば、日付や時間帯により絞り込んでみたり、地域により絞り込んでみたり、性別や年齢により絞り込んでみたりすることでしょう。そして、そのようなときに便利な存在が集計クエリです。
54
53
  .sp
55
- groongaのストレージファイルは、複数プロセスや複数スレッドで共有することができます。明示的なロックなどは必要ありません。
54
+ 集計クエリとは、指定したカラムの値によってレコードをグループ化し、各グループに含まれるレコードの数を求めるクエリです。たとえば、地域の ID を格納しているカラムを指定すれば、地域毎のレコード数が求まります。日付のカラムを指定したときの出力をグラフ化すれば、レコード数の時間変化を視覚化することができます。さらに、地域による絞り込みと日付に対する集計クエリを組み合わせれば、特定の地域におけるレコード数の時間変化を視覚化ことも可能です。このように、尺度を自由に選択して絞り込み・集計できることは、膨大な情報を扱う上でとても重要になります。
56
55
  .sp
57
- Tritonnの後継として \fI\%mroonga\fP が開発されています。mroongaはMySQLのプラガブルストレージエンジンとして実装されています。mroongaが開いているgroongaのストレージファイルは他のgroongaサーバも共有することができます。例えば、MySQLプロトコルでデータの更新を行い、HTTPでデータの参照を行うことができます。
58
- .SS ドリルダウンなどの集計系クエリを高速に実現
56
+ groonga が集計クエリを高速に処理できる理由は、データベースの論理構造にカラムストアを採用しているからです。集計クエリが参照するのは指定されたカラムのみであるため、カラム単位でデータを格納する列指向のデータベースでは、必要なカラムのみを無駄なく読み出せることが利点となります。一方、レコード単位でデータを格納する行指向のデータベースでは、隣接するカラムをまとめて読み出してしまうことが欠点となります。
57
+ .SS 転置索引とトークナイザ
59
58
  .sp
60
- groongaのストレージは、カラムごとにデータを保存するカラム指向データベースを採用しています。カラム指向データベースはOLAPなどの集計クエリを高速に実現するのに向いています。
59
+ 転置索引は大規模な全文検索に用いられる伝統的なデータ構造です。転置索引を用いた全文検索エンジンでは、文書を追加するときに索引語を記録しておき、検索するときはクエリを索引語に分割して出現文書を求めます。そのため、文書やクエリから索引語を抜き出す方法が重要になります。
61
60
  .sp
62
- 全文検索結果のうち、特定のカラム値ごとにグループ分けをし、それぞれのグループのレコード数を数えるような処理をドリルダウンといいます。groongaはカラム指向データベースを生かして、このような処理を高速に実行します。
63
- .SS Sennaの転置インデックス実装をさらに改良
61
+ トークナイザは、文字列から索引語を抜き出すモジュールです。日本語を対象とする全文検索においては、形態素を索引語として抜き出す方式と文字 N\-gram を抜き出す方式のいずれか、あるいは両方を用いるのが一般的です。形態素方式は検索時間や索引サイズの面で優れているほか、検索結果に不要な文書が含まれにくいという利点を持っています。一方、N\-gram 方式には検索漏れが発生しにくいという利点があり、状況によって適した方式を選択することが望ましいとされています。
64
62
  .sp
65
- groongaの転置インデックスは、Sennaにおける転置インデックスの実装を改良し、より高速かつ汎用的なものとなりました。
63
+ groonga は形態素方式と N\-gram 方式の両方に対応しています。初期状態で利用できるトークナイザは空白を区切り文字として用いる方式と N\-gram 方式のみですが、形態素解析器 MeCab を組み込んだときは MeCab による分かち書きの結果を用いる形態素方式が有効になります。トークナイザはプラグインとして追加できるため、特徴的なキーワードのみを索引語として採用するなど、独自のトークナイザを開発することが可能です。
64
+ .SS 共有可能なストレージと参照ロックフリー
66
65
  .sp
67
- 転置インデックスを生かすことにより、SQLでも実現が難しい複雑なクエリを高速に実行することができます。いわゆるタグ検索やドリルダウンにおいて、転置インデックスを利用した高速な処理を行うことができます。
66
+ CPU のマルチコア化が進んでいるため、同時に複数のクエリを実行したり、一つのクエリを複数のスレッドで実行したりすることの重要性はますます高まっています。
67
+ .sp
68
+ groonga のストレージは、複数のスレッド・プロセスで共有することができます。また、参照ロックフリーなデータ構造を採用しているため、更新クエリを実行している状況でも参照クエリを実行することができます。参照クエリを実行できる状態を維持しながら更新クエリを実行できるので、リアルタイムなシステムに適しています。さらには、MySQL を介して更新クエリを実行している最中に groonga の HTTP サーバを介して参照クエリを実行するなど、多彩な運用が可能となっています。
68
69
  .SS 位置情報(緯度・経度)検索
69
70
  .sp
70
- 日本測地系のみならず、世界測地系にも対応した位置情報での絞込が可能です。位置情報の範囲は、円や矩形を指定することができます。また、任意の2点間の距離も計算可能です。
71
- .SS 自動クエリキャッシュ機構
71
+ GPS に代表される測位システムを搭載した高機能な携帯端末の普及などによって、位置情報を扱うサービスはますます便利になっています。たとえば、近くにあるレストランを探しているときは、現在地からの距離を基準として検索をおこない、検索結果を地図上に表示してくれるようなサービスが便利です。そのため、位置情報検索を高速に実現できることが重要になっています。
72
+ .sp
73
+ groonga では転置索引を応用して高速な位置情報検索を実現しています。矩形・円による範囲検索に対応しているほか、基準点の近くを優先的に探索させることができます。また、距離計算をサポートしているので、位置情報検索の結果を基準点からの距離によって整列することも可能です。
74
+ .SS groonga ライブラリ
75
+ .sp
76
+ Groonga の基本機能は C ライブラリとして提供されているので、任意のアプリケーションに組み込んで利用することができます。C/C++ 以外については、Ruby から groonga を利用するライブラリなどが関連プロジェクトにおいて提供されています。詳しくは \fI\%関連プロジェクト\fP を参照してください。
77
+ .SS groonga サーバ
72
78
  .sp
73
- 参照系のクエリについて、自動的にクエリキャッシュを行います。
79
+ groonga にはサーバ機能があるため、レンタルサーバなどの新しいライブラリをインストールできない環境においても利用できます。対応しているのは HTTP, memcached binary プロトコル、およびに groonga の独自プロトコルである gqtp です。サーバとして利用するときはクエリのキャッシュ機能が有効になるため、同じクエリを受け取ったときは応答時間が短くなるという特徴があります。
80
+ .SS groonga ストレージエンジン
81
+ .sp
82
+ groonga は独自のカラムストアを持つ列指向のデータベースとしての側面を持っていますが、既存の RDBMS のストレージエンジンとして利用することもできます。たとえば、groonga をベースとする MySQL のストレージエンジンとして \fI\%mroonga\fP が開発されています。mroonga は MySQL のプラグインとして動的にロードすることが可能であり、groonga のカラムストアをストレージとして利用したり、全文検索エンジンとして groonga を MyISAM や InnoDB と連携させたりすることができます。groonga 単体での利用、およびに MyISAM, InnoDB との連携には一長一短があるので、用途に応じて適切な組み合わせを選ぶことが大切です。詳しくは \fI\%関連プロジェクト\fP を参照してください。
74
83
  .SH インストール
75
84
  .sp
76
85
  それぞれの環境毎にインストール方法を説明します。
@@ -96,6 +105,16 @@ deb\-src http://packages.groonga.org/debian/ squeeze main
96
105
  % sudo aptitude \-V \-D \-y install groonga
97
106
  .ft P
98
107
  .fi
108
+ .sp
109
+ \fI\%Munin\fP プラグインを提供するパッケージもあります。もし、muninでgroongaの状態をモニターしたい場合は、groonga\-munin\-pluginsパッケージをインストールしてください。
110
+ .sp
111
+ groonga\-munin\-pluginsパッケージをインストール:
112
+ .sp
113
+ .nf
114
+ .ft C
115
+ % sudo aptitude \-V \-D \-y install groonga\-munin\-plugins
116
+ .ft P
117
+ .fi
99
118
  .SS Debian GNU/Linux wheezy
100
119
  .sp
101
120
  /etc/apt/sources.list.d/groonga.list:
@@ -116,6 +135,14 @@ deb\-src http://packages.groonga.org/debian/ wheezy main
116
135
  % sudo aptitude \-V \-D \-y install groonga
117
136
  .ft P
118
137
  .fi
138
+ .sp
139
+ groonga\-munin\-pluginsパッケージをインストール:
140
+ .sp
141
+ .nf
142
+ .ft C
143
+ % sudo aptitude \-V \-D \-y install groonga\-munin\-plugins
144
+ .ft P
145
+ .fi
119
146
  .SS Debian GNU/Linux sid
120
147
  .sp
121
148
  /etc/apt/sources.list.d/groonga.list:
@@ -136,6 +163,14 @@ deb\-src http://packages.groonga.org/debian/ unstable main
136
163
  % sudo aptitude \-V \-D \-y install groonga
137
164
  .ft P
138
165
  .fi
166
+ .sp
167
+ groonga\-munin\-pluginsパッケージをインストール:
168
+ .sp
169
+ .nf
170
+ .ft C
171
+ % sudo aptitude \-V \-D \-y install groonga\-munin\-plugins
172
+ .ft P
173
+ .fi
139
174
  .SS Ubuntu 10.04 LTS Lucid Lynx
140
175
  .IP ノート
141
176
  Ubuntu本家のuniverseセクションもインストール対象としてください。設定方法は以下で説明しています。
@@ -155,8 +190,16 @@ deb\-src http://packages.groonga.org/ubuntu/ lucid universe
155
190
  .nf
156
191
  .ft C
157
192
  % sudo apt\-key adv \-\-recv\-keys \-\-keyserver keyserver.ubuntu.com 1C837F31
158
- % sudo aptitude update
159
- % sudo aptitude \-V \-D \-y install groonga
193
+ % sudo apt\-get update
194
+ % sudo apt\-get \-y install groonga
195
+ .ft P
196
+ .fi
197
+ .sp
198
+ groonga\-munin\-pluginsパッケージをインストール:
199
+ .sp
200
+ .nf
201
+ .ft C
202
+ % sudo apt\-get \-y install groonga\-munin\-plugins
160
203
  .ft P
161
204
  .fi
162
205
  .SS Ubuntu 11.04 Natty Narwhal
@@ -178,8 +221,16 @@ deb\-src http://packages.groonga.org/ubuntu/ natty universe
178
221
  .nf
179
222
  .ft C
180
223
  % sudo apt\-key adv \-\-recv\-keys \-\-keyserver keyserver.ubuntu.com 1C837F31
181
- % sudo aptitude update
182
- % sudo aptitude \-V \-D \-y install groonga
224
+ % sudo apt\-get update
225
+ % sudo apt\-get \-y install groonga
226
+ .ft P
227
+ .fi
228
+ .sp
229
+ groonga\-munin\-pluginsパッケージをインストール:
230
+ .sp
231
+ .nf
232
+ .ft C
233
+ % sudo apt\-get \-y install groonga\-munin\-plugins
183
234
  .ft P
184
235
  .fi
185
236
  .SS Ubuntu 11.10 Oneiric Ocelot
@@ -201,8 +252,16 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
201
252
  .nf
202
253
  .ft C
203
254
  % sudo apt\-key adv \-\-recv\-keys \-\-keyserver keyserver.ubuntu.com 1C837F31
204
- % sudo aptitude update
205
- % sudo aptitude \-V \-D \-y install groonga
255
+ % sudo apt\-get update
256
+ % sudo apt\-get \-y install groonga
257
+ .ft P
258
+ .fi
259
+ .sp
260
+ groonga\-munin\-pluginsパッケージをインストール:
261
+ .sp
262
+ .nf
263
+ .ft C
264
+ % sudo apt\-get \-y install groonga\-munin\-plugins
206
265
  .ft P
207
266
  .fi
208
267
  .SS CentOS 5
@@ -216,6 +275,44 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
216
275
  % sudo yum install \-y groonga
217
276
  .ft P
218
277
  .fi
278
+ .sp
279
+ \fI\%Munin\fP プラグインを提供するパッケージもあります。もし、muninでgroongaの状態をモニターしたい場合は、groonga\-munin\-pluginsパッケージをインストールしてください。
280
+ .IP ノート
281
+ groonga\-munin\-pluginsパッケージはmunin\-nodeパッケージを必要としますが、munin\-nodeパッケージはCentOSの公式リポジトリには含まれていません。munin\-nodeパッケージをyumでインストールするために \fI\%RPMforge\fP リポジトリか \fI\%EPEL\fP リポジトリを有効にする必要があります。
282
+ .sp
283
+ i386環境でRPMforgeリポジトリを有効にする:
284
+ .sp
285
+ .nf
286
+ .ft C
287
+ % sudo rpm \-ivh http://pkgs.repoforge.org/rpmforge\-release/rpmforge\-release\-0.5.2\-2.el5.rf.i386.rpm
288
+ .ft P
289
+ .fi
290
+ .sp
291
+ x86_64環境でRPMforgeリポジトリを有効にする:
292
+ .sp
293
+ .nf
294
+ .ft C
295
+ % sudo rpm \-ivh http://pkgs.repoforge.org/rpmforge\-release/rpmforge\-release\-0.5.2\-2.el5.rf.x86_64.rpm
296
+ .ft P
297
+ .fi
298
+ .sp
299
+ EPELリポジトリを有効にする(環境非依存):
300
+ .sp
301
+ .nf
302
+ .ft C
303
+ % sudo rpm \-ivh http://download.fedoraproject.org/pub/epel/5/i386/epel\-release\-5\-4.noarch.rpm
304
+ .ft P
305
+ .fi
306
+ .RE
307
+ .sp
308
+ groonga\-munin\-pluginsパッケージをインストール:
309
+ .sp
310
+ .nf
311
+ .ft C
312
+ % sudo yum update
313
+ % sudo yum install \-y groonga\-munin\-plugins
314
+ .ft P
315
+ .fi
219
316
  .SS CentOS 6
220
317
  .sp
221
318
  インストール:
@@ -227,7 +324,45 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
227
324
  % sudo yum install \-y groonga
228
325
  .ft P
229
326
  .fi
230
- .SS Fedora 15
327
+ .sp
328
+ \fI\%Munin\fP プラグインを提供するパッケージもあります。もし、muninでgroongaの状態をモニターしたい場合は、groonga\-munin\-pluginsパッケージをインストールしてください。
329
+ .IP ノート
330
+ groonga\-munin\-pluginsパッケージはmunin\-nodeパッケージを必要としますが、munin\-nodeパッケージはCentOSの公式リポジトリには含まれていません。munin\-nodeパッケージをyumでインストールするために \fI\%RPMforge\fP リポジトリか \fI\%EPEL\fP リポジトリを有効にする必要があります。
331
+ .sp
332
+ i686環境でRPMforgeリポジトリを有効にする:
333
+ .sp
334
+ .nf
335
+ .ft C
336
+ % sudo rpm \-ivh http://pkgs.repoforge.org/rpmforge\-release/rpmforge\-release\-0.5.2\-2.el6.rf.i686.rpm
337
+ .ft P
338
+ .fi
339
+ .sp
340
+ x86_64環境でRPMforgeリポジトリを有効にする:
341
+ .sp
342
+ .nf
343
+ .ft C
344
+ % sudo rpm \-ivh http://pkgs.repoforge.org/rpmforge\-release/rpmforge\-release\-0.5.2\-2.el6.rf.x86_64.rpm
345
+ .ft P
346
+ .fi
347
+ .sp
348
+ EPELリポジトリを有効にする(環境非依存):
349
+ .sp
350
+ .nf
351
+ .ft C
352
+ % sudo rpm \-ivh http://download.fedoraproject.org/pub/epel/6/i386/epel\-release\-6\-5.noarch.rpm
353
+ .ft P
354
+ .fi
355
+ .RE
356
+ .sp
357
+ groonga\-munin\-pluginsパッケージをインストール:
358
+ .sp
359
+ .nf
360
+ .ft C
361
+ % sudo yum update
362
+ % sudo yum install \-y groonga\-munin\-plugins
363
+ .ft P
364
+ .fi
365
+ .SS Fedora 16
231
366
  .sp
232
367
  インストール:
233
368
  .sp
@@ -238,6 +373,16 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
238
373
  % sudo yum install \-y groonga
239
374
  .ft P
240
375
  .fi
376
+ .sp
377
+ \fI\%Munin\fP プラグインを提供するパッケージもあります。もし、muninでgroongaの状態をモニターしたい場合は、groonga\-munin\-pluginsパッケージをインストールしてください。
378
+ .sp
379
+ groonga\-munin\-pluginsパッケージをインストール:
380
+ .sp
381
+ .nf
382
+ .ft C
383
+ % sudo yum install \-y groonga\-munin\-plugins
384
+ .ft P
385
+ .fi
241
386
  .SS Mac OS X (MacPorts)
242
387
  .sp
243
388
  インストール:
@@ -268,6 +413,8 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
268
413
  .sp
269
414
  \fI\%packages.groonga.org/source/\fP よりtar.gzファイルを取得し、インストール先の環境にファイルを展開して、以下のように実行することでインストールできます。:
270
415
  .sp
416
+ インストール:
417
+ .sp
271
418
  .nf
272
419
  .ft C
273
420
  \&./configure \-\-prefix=/usr \-\-localstatedir=/var && make && sudo make install
@@ -275,6 +422,8 @@ deb\-src http://packages.groonga.org/ubuntu/ oneiric universe
275
422
  .fi
276
423
  .sp
277
424
  prefixは、インストール先を指定するパラメータです。prefixを指定しない場合には、/usr/localが指定されたものとみなします。LD_LIBRARY_PATHなどに詳しくない人は、上記のように/usrを指定することをお勧めします。
425
+ .sp
426
+ groongaパッケージには \fI\%Munin\fP プラグインが含まれています。これらをインストールするためには \fI\-\-with\-munin\-plugins\fP オプションを指定する必要があります。
278
427
  .SH コミュニティ
279
428
  .sp
280
429
  groongaに関する情報を共有するための場所がいくつかあります。あなたの参加をお待ちしています!
@@ -283,14 +432,17 @@ groongaに関する情報を共有するための場所がいくつかありま
283
432
  groongaに関する話題を扱うメーリングリストがあります。
284
433
  .INDENT 0.0
285
434
  .TP
286
- .B For Japanese developers
435
+ .B For English speaker
436
+ \fI\%groonga-talk@lists.sourceforge.net\fP
437
+ .TP
438
+ .B For Japanese speaker
287
439
  \fI\%groonga-dev@lists.sourceforge.jp\fP
288
440
  .UNINDENT
289
441
  .SH チュートリアル
290
442
  .SS 基本的な操作
291
443
  .sp
292
- groongaは、Cのライブラリとして使用する方法と、groonga実行ファイルを通して使用する方法があります。本チュートリアルでは、groonga実行ファイルを使用する方法について説明します。groonga実行ファイルを使って、DBの作成・操作・サーバの起動・サーバへの接続などの操作が行えます。
293
- .SS DBの作成
444
+ groongaには、Cのライブラリとして使用する方法と、groonga実行ファイルを通して使用する方法があります。本チュートリアルでは、groonga実行ファイルを使用する方法について説明します。groonga実行ファイルを使って、データベースの作成・操作・サーバの起動・サーバへの接続などの操作が行えます。
445
+ .SS データベースの作成
294
446
  .sp
295
447
  以下のようなコマンドを実行すると、データベースを新規に作成することができます。
296
448
  .sp
@@ -302,20 +454,20 @@ groonga \-n DB_PATH_NAME
302
454
  .ft P
303
455
  .fi
304
456
  .sp
305
- \-nオプションは、データベースを作ることを示します。データベースパス名には、新しく作成するデータベースのフルパス名を指定します。
457
+ \-nオプションは、データベースを作ることを指示します。DB_PATH_NAMEには、新しく作成するデータベースのパスを指定します。指定されたパスが既に存在するときはコマンドが失敗するので注意してください。
306
458
  .sp
307
- 上記コマンドでデータベースを作成すると、そのまま対話モードと呼ばれるコマンドを受け付けるモードになります。Ctrlキーを押しながらdキーを押すと、対話モードから抜けることができます。
459
+ 上記コマンドは、データベースを作成してから、コマンドの入力を受け付ける対話モードに入ります。Ctrlキーを押しながらdキーを押すと、対話モードから抜けることができます。
308
460
  .sp
309
461
  実行例:
310
462
  .sp
311
463
  .nf
312
464
  .ft C
313
465
  % groonga \-n /tmp/tutorial.db
314
- > ctrl\-d
466
+ > Ctrl\-d
315
467
  %
316
468
  .ft P
317
469
  .fi
318
- .SS DBの操作
470
+ .SS データベースの操作
319
471
  .sp
320
472
  書式:
321
473
  .sp
@@ -325,50 +477,40 @@ groonga DB_PATH_NAME [COMMAND]
325
477
  .ft P
326
478
  .fi
327
479
  .sp
328
- 既存のデータベースのフルパス名をDBパス名に指定します。コマンドを指定すると、実行結果を返します。
480
+ 操作対象のデータベースのパスをDB_PATH_NAMEに指定します。
329
481
  .sp
330
- コマンドを指定しない場合には、対話モードに入ります。対話モードでは、標準入力からコマンドを読み込み、順次実行します。本チュートリアルでは、対話モードを主に使用します。
482
+ COMMAND が指定された場合、COMMAND を実行した後、実行結果を返します。指定されなかった場合には、対話モードに入ります。対話モードでは、標準入力からコマンドを読み込み、順次実行します。本チュートリアルでは、対話モードを主に使用します。
331
483
  .sp
332
- たとえば、statusというコマンドを実行してみましょう。statusコマンドは、groongaの実行状態を返すコマンドです。
484
+ それでは、statusというコマンドを実行してみましょう。statusコマンドは、groongaの実行状態を返すコマンドです。
333
485
  .sp
334
486
  実行例:
335
487
  .sp
336
488
  .nf
337
489
  .ft C
338
- > table_create \-\-name Type \-\-flags TABLE_HASH_KEY \-\-key_type ShortText
339
- [[0,1317212791.02322,0.03942904],true]
340
- > column_create \-\-table Type \-\-name number \-\-type Int32
341
- [[0,1317212791.26314,0.124383285],true]
342
- > column_create \-\-table Type \-\-name float \-\-type Float
343
- [[0,1317212791.58803,0.027924039],true]
344
- > column_create \-\-table Type \-\-name string \-\-type ShortText
345
- [[0,1317212791.81654,0.040399047],true]
346
- > column_create \-\-table Type \-\-name time \-\-type Time
347
- [[0,1317212792.05751,0.027354067],true]
348
- > load \-\-table Type
349
- > [{"_key":"sample","number":12345,"float":42.195,"string":"GROONGA","time":1234567890.12}]
350
- [[0,1317212792.28516,0.200775839],1]
351
- > select \-\-table Type
352
- [[0,1317212792.68655,0.000199477],[[[1],[["_id","UInt32"],["_key","ShortText"],["time","Time"],["string","ShortText"],["number","Int32"],["float","Float"]],[1,"sample",1234567890.12,"GROONGA",12345,42.195]]]]
490
+ % groonga \-n /tmp/groonga\-databases/introduction.db
491
+ > status
492
+ [[0,1322616280.40348,0.000158121],{"alloc_count":127,"starttime":1322616279,"uptime":1,"version":"1.2.8\-9\-gbf05b82","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
353
493
  .ft P
354
494
  .fi
355
495
  .sp
356
- 以上のように、コマンドの実行結果は基本的にjson形式で返却されます。jsonの配列の0番目の要素に、エラーコードや実行時間などの情報が入ります。jsonの配列の1番目の様子に、コマンドの実行結果が入ります。
357
- .SS コマンド
496
+ 以上のように、コマンドの実行結果は基本的にjson形式の配列として返却されます。配列の先頭には、エラーコードや実行時間などの情報が入ります。2番目の要素には、コマンドによって指定された操作の実行結果が入ります。
497
+ .SS コマンドの書式
358
498
  .sp
359
- groonga実行ファイルやgroongaサーバを介して様々なコマンドを実行して、DBを操作することができます。コマンドは以下の書式のうちいずれかで与えることができます。
499
+ データベースを操作するコマンドには、以下の書式で引数を与えます。:
360
500
  .sp
361
501
  .nf
362
502
  .ft C
363
- Form1: COMMAND ARGUMENT1 ARGUMENT2 ..
503
+ Form_1: COMMAND VALUE_1 VALUE_2 ..
364
504
 
365
- Form2: COMMAND \-\-ARAGUMENT1 VALUE1 \-\-ARGUMENT2 VALUE2 ..
505
+ Form_2: COMMAND \-\-NAME_1 VALUE_1 \-\-NAME_2 VALUE_2 ..
366
506
  .ft P
367
507
  .fi
368
508
  .sp
369
- 書式1と2は混ぜて使うことができます。
509
+ 書式1では値を適切な順番で渡す必要があります。このような引数は、位置によって値の意味が決まるため、位置固定引数などと呼ばれることもあります。
510
+ .sp
511
+ 書式2では値を名前と一緒に渡します。そのため、任意の順序で引数を指定することができます。このような引数は、名前付き引数やキーワード引数と呼ばれることもあります。
370
512
  .sp
371
- 書式2において、空白や、記号「"\(aq()」のうちいずれかを含む値を指定したい場合は、シングルクォート(\(aq)かダブルクォート(")で値を囲みます。
513
+ 空白や特殊な記号「"\(aq()」を含む値を指定したいときは、シングルクォート(\(aq)かダブルクォート(")で値を囲むようにしてください。
372
514
  .sp
373
515
  詳しくは、 \fB/executables/groonga\fP のコマンドの項を参考にしてください。
374
516
  .SS 主なコマンド
@@ -380,13 +522,13 @@ Form2: COMMAND \-\-ARAGUMENT1 VALUE1 \-\-ARGUMENT2 VALUE2 ..
380
522
  groongaプロセスの状態を表示します。
381
523
  .TP
382
524
  .B \fB/commands/table_list\fP
383
- DBに定義されているテーブルのリストを表示します。
525
+ データベースに定義されているテーブルのリストを表示します。
384
526
  .TP
385
527
  .B \fB/commands/column_list\fP
386
528
  テーブルに定義されているカラムのリストを表示します。
387
529
  .TP
388
530
  .B \fB/commands/table_create\fP
389
- DBにテーブルを追加します。
531
+ データベースにテーブルを追加します。
390
532
  .TP
391
533
  .B \fB/commands/column_create\fP
392
534
  テーブルにカラムを追加します。
@@ -403,26 +545,21 @@ DBにテーブルを追加します。
403
545
  .sp
404
546
  \fB/commands/table_create\fP コマンドを使用してテーブルを作成します。
405
547
  .sp
406
- groongaでは、多くの場合テーブルを作成する際に主キーが必要となります。また、主キーには型と、その格納方法を指定する必要があります。
548
+ groongaのテーブルには基本的に主キーが必要であり、テーブルを作成する際には型と格納方法も併せて指定する必要があります。
407
549
  .sp
408
- 型については、のちのチュートリアルで触れます。データの種類をあらわしているもの、とイメージしてください。主キーの格納方法によって、主キーでの検索速度や、前方一致検索の可否が決まります。これも、のちのチュートリアルで触れます。
550
+ 型については後で説明するので、ここではデータの種類を表しているものという程度に考えてください。主キーの格納方法は、主キーを条件とする検索にかかる時間や、前方一致検索の可否などを左右します。こちらも後で説明します。
409
551
  .sp
410
- ここでは、ShortText型の主キー値を持ち、主キーの格納方法はHASHである、\(aqSite\(aqという名前のテーブルを作成します。
552
+ それでは、\(aqSite\(aqという名前のテーブルを作成してみましょう。主キーについては、型がShortTextで格納方法はHASHとしています。
411
553
  .sp
412
554
  実行例:
413
555
  .sp
414
556
  .nf
415
557
  .ft C
416
- > column_create \-\-table Site \-\-name link \-\-type Site
417
- [[0,1317212792.88872,0.060705006],true]
418
- > load \-\-table Site
419
- > [{"_key":"http://example.org/","link":"http://example.net/"}]
420
- [[0,1317212793.14984,0.200481934],1]
421
- > select \-\-table Site \-\-output_columns _key,title,link._key,link.title \-\-query title:@this
422
- [[0,1317212793.55084,0.000485897],[[[1],[["_key","ShortText"],["title","ShortText"],["link._key","ShortText"],["link.title","ShortText"]],["http://example.org/","This is test record 1!","http://example.net/","test record 2."]]]]
558
+ > table_create \-\-name Site \-\-flags TABLE_HASH_KEY \-\-key_type ShortText
559
+ [[0,1322616280.60791,0.01234375],true]
423
560
  .ft P
424
561
  .fi
425
- .SS 検索
562
+ .SS テーブルの表示
426
563
  .sp
427
564
  \fB/commands/select\fP コマンドを用いて、テーブルの中身を表示することができます。
428
565
  .sp
@@ -430,24 +567,19 @@ groongaでは、多くの場合テーブルを作成する際に主キーが必
430
567
  .sp
431
568
  .nf
432
569
  .ft C
433
- > column_create \-\-table Site \-\-name links \-\-flags COLUMN_VECTOR \-\-type Site
434
- [[0,1317212793.75262,0.049658904],true]
435
- > load \-\-table Site
436
- > [{"_key":"http://example.org/","links":["http://example.net/","http://example.org/","http://example.com/"]}]
437
- [[0,1317212794.00274,0.200473621],1]
438
- > select \-\-table Site \-\-output_columns _key,title,links._key,links.title \-\-query title:@this
439
- [[0,1317212794.40349,0.000384272],[[[1],[["_key","ShortText"],["title","ShortText"],["links._key","ShortText"],["links.title","ShortText"]],["http://example.org/","This is test record 1!",["http://example.net/","http://example.org/","http://example.com/"],["test record 2.","This is test record 1!","test test record three."]]]]]
570
+ > select \-\-table Site
571
+ [[0,1322616280.82196,0.000451873],[[[0],[["_id","UInt32"],["_key","ShortText"]]]]]
440
572
  .ft P
441
573
  .fi
442
574
  .sp
443
- selectにテーブル名を指定すると、指定したテーブルの中身を10件表示します。[0]は検索されたレコードの件数、["_id","Uint32"]は値がUInt32型である"_id\(aqという名前のカラム、["_key","ShortText"]は値がShortText型である\(aq_key\(aqという名前のカラムを示しています。
575
+ selectにテーブル名のみを指定すると、指定したテーブルの中身を10件まで表示します。実行結果の[0]はテーブルに含まれるレコードの数を示しています。今回は何も登録されていないため0件です。レコード数の次に表示されている配列はテーブルの構成を示しています。["_id","Uint32"]UInt32型の値を持つ\(aq_id\(aqという名前のカラム、["_key","ShortText"]ShortText型の値を持つ\(aq_key\(aqという名前のカラムをそれぞれ表しています。
444
576
  .sp
445
- table_createコマンドで作成したテーブルには、最初から\(aq_id\(aq/\(aq_key\(aqという2つのカラムがあります。\(aq_id\(aqはgroongaが自動的に付与するID番号が格納されるカラムです。\(aq_key\(aqは主キーが格納されるカラムです。これらのカラム名を変更することはできません。
577
+ table_createコマンドで作成したテーブルには、最初から\(aq_id\(aq, \(aq_key\(aqという2つのカラムがあります。\(aq_id\(aqはgroongaが自動的に付与するID番号が格納されるカラムです。\(aq_key\(aqは主キーが格納されるカラムです。これらのカラム名を変更することはできません。
446
578
  .SS カラムの作成
447
579
  .sp
448
580
  \fB/commands/column_create\fP コマンドを用いて、カラムを作成することができます。
449
581
  .sp
450
- ShortText型の値を持つ、\(aqcomment\(aqという名前のカラムを\(aqSite\(aqテーブルに追加しましょう。
582
+ ここでは、ShortText型の値を持つ\(aqtitle\(aqという名前のカラムを\(aqSite\(aqテーブルに追加してみましょう。
451
583
  .sp
452
584
  実行例:
453
585
  .sp
@@ -460,12 +592,14 @@ ShortText型の値を持つ、\(aqcomment\(aqという名前のカラムを\(aqS
460
592
  .ft P
461
593
  .fi
462
594
  .sp
463
- COLUMN_SCALARについては、通常のカラムであることを示しています。
595
+ COLUMN_SCALAR は\(aqcomment\(aqを通常のカラムとして作成することを指示しています。
464
596
  .SS 全文検索用の語彙表の作成
465
597
  .sp
466
- このチュートリアルでは、groongaに登録したデータを用いた全文検索を行います。
598
+ そろそろ全文検索の使い方について見ていきましょう。
599
+ .sp
600
+ groongaでは転置インデックスを使って高速な全文検索を実現しています。そのため、まずは転置インデックスとして用いるテーブルを作成する必要があります。テーブルの内容は、文書に含まれる単語やN\-gramなどの索引語を主キーとして、各カラムに索引語の位置情報を格納するという構成になります。結果として、主キーのカラムは全文検索における語彙表の役割を果たします。
467
601
  .sp
468
- 全文検索を行う場合は、まず語彙表を作成する必要があります。語彙表とは、文書の中にある単語が主キーとなるテーブルです。ここでは、ShortText型の主キー値を持つ、\(aqTerms\(aqという名前のテーブルを作成しました。
602
+ 以下の例では、\(aqTerms\(aqという名前のテーブルを転置インデックスとして作成しています。索引語を格納するため、主キーの型はShortTextです。
469
603
  .sp
470
604
  実行例:
471
605
  .sp
@@ -478,10 +612,12 @@ COLUMN_SCALARについては、通常のカラムであることを示してい
478
612
  .sp
479
613
  この実行例には、多くのパラメータが指定されています。本チュートリアルでは、これらをすべて理解する必要はありません。以下に簡単な説明を記しますが、読み飛ばしてもらってかまいません。
480
614
  .sp
481
- 実行例にある、TABLE_PAT_KEY|KEY_NORMALIZEという値は、主キー値をパトリシア木に格納し、各語彙を正規化して登録することを示しています。実行例にある、TokenBigramという値は、 語彙表として使用するテーブルは、対象の文書をトークナイズする方式を、default_tokenizerパラメータで与えます。この例ではTokenBigramを指定しています。よって、一般的にN\-gramと呼ばれるようなインデックス方式を選択しています。
615
+ 実行例にあるTABLE_PAT_KEY|KEY_NORMALIZEという値は、主キー値をパトリシア木に格納することと、各索引語を正規化して登録することを示しています。また、default_tokenizerというパラメータには、検索の対象となる文書をトークナイズする方式を与えるようになっています。この例では、一般的にN\-gramと呼ばれるインデックス方式に対応するTokenBigramを指定しています。
482
616
  .SS 全文検索用のインデックスカラムの作成
483
617
  .sp
484
- Siteテーブルのtitleカラムを全文検索の対象としたいとしましょう。その場合には、語彙表にインデックス型のカラムを作成します。
618
+ 次に必要なのは、インデックス型のカラムを作成することです。このカラムは、関連付けられたカラムに対する全文検索に利用されます。つまり、全文検索を行いたいカラムに対してインデックスを作成することに相当します。
619
+ .sp
620
+ それでは、Siteテーブルのtitleカラムを全文検索の対象とするべく、インデックス型のカラムを作成してみましょう。
485
621
  .sp
486
622
  実行例:
487
623
  .sp
@@ -492,10 +628,12 @@ Siteテーブルのtitleカラムを全文検索の対象としたいとしま
492
628
  .ft P
493
629
  .fi
494
630
  .sp
495
- Siteテーブルのtitleカラムを検索対象とする、\(aqblog_title\(aqという名前のインデックス型カラムをTermsテーブルに作成しました。インデックス対象となるテーブルをtypeに、インデックス対象となるカラムをsourceに指定します。実行例のflagsのCOLUMN_INDEX|WITH_POSITIONという値は、語彙の位置情報を格納するインデックス型のカラムであることを示しています。通常の全文検索インデックスでは、COLUMN_INDEX|WITH_POSITIONを指定してください。語彙の位置情報を格納する意味については、本チュートリアルでは触れません。
631
+ Siteテーブルのtitleカラムを検索対象とする、\(aqblog_title\(aqという名前のインデックス型カラムをTermsテーブルに作成しました。インデックス対象となるテーブルをtypeに、インデックス対象となるカラムをsourceに指定します。実行例のflagsのCOLUMN_INDEX|WITH_POSITIONという値は、索引語の位置情報を格納するインデックス型のカラムであることを示しています。通常の全文検索インデックスでは、COLUMN_INDEX|WITH_POSITIONを指定してください。索引語の位置情報を格納する意味については、本チュートリアルでは触れません。
496
632
  .SS データのロード
497
633
  .sp
498
- \fB/commands/load\fP コマンドを使用します。loadコマンドでは、jsonで受け取ったデータをテーブルに格納します。
634
+ \fB/commands/load\fP コマンドを使用します。loadコマンドでは、json形式で受け取ったデータをテーブルに格納します。
635
+ .sp
636
+ 以下の例では9つのレコードをSiteテーブルに格納します。
499
637
  .sp
500
638
  実行例:
501
639
  .sp
@@ -529,7 +667,7 @@ selectコマンドで、データが入っていることを確認しましょ
529
667
  .fi
530
668
  .SS データの検索
531
669
  .sp
532
- groongaでは、\(aq_id\(aqカラムと\(aq_key\(aqカラムの値はテーブル中で一意です。よって、それを用いて検索してみましょう。
670
+ データの準備もできたので全文検索を試してみたいところですが、その前に、\(aq_id\(aqカラムと\(aq_key\(aqカラムを用いた検索を行ってみましょう。これらのカラムは値を指定すればレコードが一意に決まります。
533
671
  .sp
534
672
  selectコマンドにおいて、queryパラメータを用いるとデータの検索を行うことができます。
535
673
  .sp
@@ -569,13 +707,9 @@ queryパラメータでは、インデックスを用いた全文検索を行う
569
707
  .ft P
570
708
  .fi
571
709
  .sp
572
- titleカラムに対して、\(aqthis\(aqという文字列で全文検索を行った結果を返します。
710
+ queryパラメータに与えた「title:@this」は、\(aqtitle\(aqという名前のカラムに\(aqthis\(aqという文字列が含まれているレコードを検索する、という意味を持ちます。この例では1つのレコードが検索条件に該当しています。転置インデックスを作成するときにKEY_NORMALIZEという値を指定したため、大文字と小文字の違いが吸収されていることに注意してください。
573
711
  .sp
574
- queryパラメータに与えた「title:@this」というのが、\(aqtitle\(aqという名前のカラムに\(aqthis\(aqという文字列が含まれているレコードを検索する、という意味です。
575
- .sp
576
- selectコマンドには、match_columnsというパラメータが存在します。
577
- .sp
578
- これを指定すると、query内にカラム名を指定しない条件があった場合、match_columnsで指定されたカラムに対しての検索であることを示します。[1]_
712
+ selectコマンドには、match_columnsというパラメータが存在します。このパラメータはデフォルトで検索対象にするカラムを指定するもので、カラム名を指定しない検索条件にのみ適用されます。[1]_
579
713
  .sp
580
714
  match_columnsパラメータに\(aqtitle\(aq、queryパラメータに\(aqthis\(aqという文字列を指定すると、上記のクエリと同じ結果を得ることができます。
581
715
  .sp
@@ -589,9 +723,7 @@ match_columnsパラメータに\(aqtitle\(aq、queryパラメータに\(aqthis\(
589
723
  .fi
590
724
  .SS 出力カラムの指定
591
725
  .sp
592
- selectコマンドにおいて、output_columnsパラメータを用いることで、検索結果で表示するカラムを指定することが出来ます。
593
- .sp
594
- 複数のカラムを指定する場合は、カンマ(,)区切りで指定します。
726
+ selectコマンドにおいて、output_columnsパラメータを用いることで、検索結果に含めるカラムを指定することができます。複数のカラムを指定する場合は、カンマ(,)区切りで指定します。
595
727
  .sp
596
728
  実行例:
597
729
  .sp
@@ -602,14 +734,12 @@ selectコマンドにおいて、output_columnsパラメータを用いること
602
734
  .ft P
603
735
  .fi
604
736
  .sp
605
- groongaの検索結果には、「_score」という名前のカラムが追加されています。このカラムは、全文検索の条件が合致する文書ほど高い数値が入ります。
737
+ この例では、「_score」という名前のカラムを含む3つのカラムを指定しています。「_score」という名前のカラムはgroongaの検索結果に含まれるカラムです。このカラムには、全文検索の条件に合致する文書ほど高い数値が入ります。
606
738
  .SS 表示範囲指定
607
739
  .sp
608
- selectコマンドにおいて、offset,limitパラメータを用いることで、検索結果から指定された範囲のみを表示することが出来ます。大量の検索結果をページで分けて、1ページ分のみを表示したい場合に有用です。
740
+ selectコマンドにおいて、offset,limitパラメータを用いることで、検索結果から指定された範囲のみを表示することができます。大量の検索結果をページで分けて、1ページ分のみを表示したい場合に有用です。
609
741
  .sp
610
- offsetパラメータには、検索結果を返す始点を指定します。1件目から結果を返す場合には、0を指定します。
611
- .sp
612
- limitパラメータには、検索結果を何件表示するのかを指定します。
742
+ offsetパラメータには、検索結果を返す始点を指定します。1件目から結果を返す場合には、0を指定します。limitパラメータには、検索結果の表示件数を指定します。
613
743
  .sp
614
744
  実行例:
615
745
  .sp
@@ -625,9 +755,9 @@ limitパラメータには、検索結果を何件表示するのかを指定し
625
755
  .fi
626
756
  .SS 並び替え
627
757
  .sp
628
- selectコマンドにおいて、sortbyパラメータを用いることで、検索結果を並び替えることが出来ます。
758
+ selectコマンドにおいて、sortbyパラメータを用いることで、検索結果を並び替えることができます。
629
759
  .sp
630
- sortbyパラメータにカラム名を指定することで、そのカラムの値で昇順にソートします。また、カラム名の前にハイフン(\-)を付けることで、降順にソートすることも出来ます。
760
+ sortbyパラメータにカラム名を指定することで、そのカラムの値で昇順にソートします。また、カラム名の前にハイフン(\-)を付けることで、降順にソートすることもできます。
631
761
  .sp
632
762
  実行例:
633
763
  .sp
@@ -747,7 +877,7 @@ protocolオプションで、groongaが受け付けるプロトコルを指定
747
877
  コマンド実行後、http://[IPアドレスまたはホスト名]:[ポート番号]/ というURLにブラウザからアクセスすると、HTML管理ツールが表示されます。ブラウザは、JavaScriptの実行が有効になっている必要があります。
748
878
  .SS HTTPでのコマンド実行
749
879
  .sp
750
- groongaがHTTPプロトコルモードで起動されているとき、「/d/コマンド名」というURLにアクセスすると、コマンドを実行することが出来ます。
880
+ groongaがHTTPプロトコルモードで起動されているとき、「/d/コマンド名」というURLにアクセスすると、コマンドを実行することができます。
751
881
  .sp
752
882
  コマンドのオプションは、HTTPのGETパラメータで渡します。つまり、「?オプション=値&オプション=値 …」という書式になります。
753
883
  .sp
@@ -785,20 +915,20 @@ groongaでは、数値(整数・小数)や文字列や時刻や経緯度な
785
915
  .nf
786
916
  .ft C
787
917
  > table_create \-\-name Type \-\-flags TABLE_HASH_KEY \-\-key_type ShortText
788
- [[0,1317212791.02322,0.03942904],true]
918
+ [[0,1322616293.7274,0.012551106],true]
789
919
  > column_create \-\-table Type \-\-name number \-\-type Int32
790
- [[0,1317212791.26314,0.124383285],true]
920
+ [[0,1322616293.94115,0.008619605],true]
791
921
  > column_create \-\-table Type \-\-name float \-\-type Float
792
- [[0,1317212791.58803,0.027924039],true]
922
+ [[0,1322616294.15095,0.004959989],true]
793
923
  > column_create \-\-table Type \-\-name string \-\-type ShortText
794
- [[0,1317212791.81654,0.040399047],true]
924
+ [[0,1322616294.35693,0.005551818],true]
795
925
  > column_create \-\-table Type \-\-name time \-\-type Time
796
- [[0,1317212792.05751,0.027354067],true]
926
+ [[0,1322616294.56333,0.006356953],true]
797
927
  > load \-\-table Type
798
928
  > [{"_key":"sample","number":12345,"float":42.195,"string":"GROONGA","time":1234567890.12}]
799
- [[0,1317212792.28516,0.200775839],1]
929
+ [[0,1322616294.77086,0.202357708],1]
800
930
  > select \-\-table Type
801
- [[0,1317212792.68655,0.000199477],[[[1],[["_id","UInt32"],["_key","ShortText"],["time","Time"],["string","ShortText"],["number","Int32"],["float","Float"]],[1,"sample",1234567890.12,"GROONGA",12345,42.195]]]]
931
+ [[0,1322616295.1744,0.000340057],[[[1],[["_id","UInt32"],["_key","ShortText"],["float","Float"],["number","Int32"],["string","ShortText"],["time","Time"]],[1,"sample",42.195,12345,"GROONGA",1234567890.12]]]]
802
932
  .ft P
803
933
  .fi
804
934
  .SS テーブル型
@@ -816,12 +946,12 @@ table_createで作成したテーブルを、カラムの型として使うこ
816
946
  .nf
817
947
  .ft C
818
948
  > column_create \-\-table Site \-\-name link \-\-type Site
819
- [[0,1317212792.88872,0.060705006],true]
949
+ [[0,1322616295.37864,0.005674045],true]
820
950
  > load \-\-table Site
821
951
  > [{"_key":"http://example.org/","link":"http://example.net/"}]
822
- [[0,1317212793.14984,0.200481934],1]
952
+ [[0,1322616295.5854,0.200879317],1]
823
953
  > select \-\-table Site \-\-output_columns _key,title,link._key,link.title \-\-query title:@this
824
- [[0,1317212793.55084,0.000485897],[[[1],[["_key","ShortText"],["title","ShortText"],["link._key","ShortText"],["link.title","ShortText"]],["http://example.org/","This is test record 1!","http://example.net/","test record 2."]]]]
954
+ [[0,1322616295.98732,0.000872177],[[[1],[["_key","ShortText"],["title","ShortText"],["link._key","ShortText"],["link.title","ShortText"]],["http://example.org/","This is test record 1!","http://example.net/","test record 2."]]]]
825
955
  .ft P
826
956
  .fi
827
957
  .sp
@@ -841,12 +971,12 @@ column_createコマンドでカラムを作成するとき、\-\-flagsオプシ
841
971
  .nf
842
972
  .ft C
843
973
  > column_create \-\-table Site \-\-name links \-\-flags COLUMN_VECTOR \-\-type Site
844
- [[0,1317212793.75262,0.049658904],true]
974
+ [[0,1322616296.19238,0.007598942],true]
845
975
  > load \-\-table Site
846
976
  > [{"_key":"http://example.org/","links":["http://example.net/","http://example.org/","http://example.com/"]}]
847
- [[0,1317212794.00274,0.200473621],1]
977
+ [[0,1322616296.40092,0.201036234],1]
848
978
  > select \-\-table Site \-\-output_columns _key,title,links._key,links.title \-\-query title:@this
849
- [[0,1317212794.40349,0.000384272],[[[1],[["_key","ShortText"],["title","ShortText"],["links._key","ShortText"],["links.title","ShortText"]],["http://example.org/","This is test record 1!",["http://example.net/","http://example.org/","http://example.com/"],["test record 2.","This is test record 1!","test test record three."]]]]]
979
+ [[0,1322616296.80305,0.000899975],[[[1],[["_key","ShortText"],["title","ShortText"],["links._key","ShortText"],["links.title","ShortText"]],["http://example.org/","This is test record 1!",["http://example.net/","http://example.org/","http://example.com/"],["test record 2.","This is test record 1!","test test record three."]]]]]
850
980
  .ft P
851
981
  .fi
852
982
  .sp
@@ -1805,6 +1935,8 @@ groongaでは、 \fB/commands/select\fP コマンドにquery_expansionパラメ
1805
1935
  .sp
1806
1936
  クエリ拡張機能を使用するためには、検索対象となる文書を格納するテーブル(ここでは文書テーブルと呼びます)以外に、ユーザの指定した検索文字列を置換するためのテーブル(ここでは置換テーブルと呼びます)を準備します。置換テーブルでは、その主キーが置換前の文字列となり、文字列型(ShortText)のカラムの値が置換後の文字列となります。
1807
1937
  .sp
1938
+ TODO: 文字列型のベクターカラムでも可能であり、その場合は各要素をORでつなげたものに置換されるということを記述する。
1939
+ .sp
1808
1940
  実際に文書テーブルと置換テーブルを作成してみましょう。
1809
1941
  .sp
1810
1942
  実行例:
@@ -1869,9 +2001,6 @@ groongaでは、 \fB/commands/select\fP コマンドにquery_expansionパラメ
1869
2001
  .sp
1870
2002
  どちらのクエリ文字列も、"(シークァーサー OR シークヮーサー)"という文字列に置換されてから検索されるため、表記の揺れを吸収して検索できるようになりました。
1871
2003
  .SH サジェスト
1872
- .IP ノート
1873
- サジェスト機能の仕様はまだ確定していません。仕様は変更される可能性があります。
1874
- .RE
1875
2004
  .sp
1876
2005
  groongaにはサジェスト機能があります。このセクションではこの機能の使い方とどのように動作しているかを説明します。
1877
2006
  .SS はじめに
@@ -2584,7 +2713,7 @@ groongaは位置情報データのうち座標データのみサポートして
2584
2713
  .sp
2585
2714
  以下の図はレコードのみがある図です。黒い点がレコードを表しています。以降の図ではレコードがどのように扱われるかを示します。
2586
2715
  [image: only records]
2587
- [image]
2716
+ [画像]
2588
2717
  .sp
2589
2718
  執筆中。。。 ( \fI\%下書き\fP )
2590
2719
  .SH リファレンスマニュアル
@@ -3313,6 +3442,198 @@ TODO
3313
3442
  \fB/suggest\fP
3314
3443
  .. : doc:\fIgroonga\-suggest\-httpd\fP
3315
3444
  .. : doc:\fIgroonga\-suggest\-learner\fP
3445
+ .SS 出力
3446
+ .sp
3447
+ groongaは以下の出力形式をサポートしています。
3448
+ .INDENT 0.0
3449
+ .INDENT 3.5
3450
+ .INDENT 0.0
3451
+ .IP \(bu 2
3452
+ \fI\%JSON\fP
3453
+ .IP \(bu 2
3454
+ \fI\%XML\fP
3455
+ .IP \(bu 2
3456
+ TSV(タブ区切り形式)
3457
+ .IP \(bu 2
3458
+ \fI\%MessagePack\fP
3459
+ .UNINDENT
3460
+ .UNINDENT
3461
+ .UNINDENT
3462
+ .sp
3463
+ JSONがデフォルトの出力形式です。
3464
+ .SS 使い方
3465
+ .sp
3466
+ groongaには以下のクエリインターフェイスがあります。
3467
+ .INDENT 0.0
3468
+ .INDENT 3.5
3469
+ .INDENT 0.0
3470
+ .IP \(bu 2
3471
+ コマンドライン
3472
+ .IP \(bu 2
3473
+ HTTP
3474
+ .UNINDENT
3475
+ .UNINDENT
3476
+ .UNINDENT
3477
+ .sp
3478
+ それぞれのインターフェイスで出力形式を変更する方法は異なります。
3479
+ .SS コマンドライン
3480
+ .sp
3481
+ \fBgroonga DB_PATH\fP または \fBgroonga \-c\fP でコマンドラインクエリインターフェイスを使うことができます。これらのgroongaコマンドでは \fB> \(ga\(ga というプロンプトが表示されます。クエリインターフェイスでは \(ga\(gaoutput_type\fP オプションで出力形式を指定できます。
3482
+ .sp
3483
+ \fBoutput_type\fP オプションを指定しない場合はJSON形式の出力になります:
3484
+ .sp
3485
+ .nf
3486
+ .ft C
3487
+ > status
3488
+ [[0,1327721628.10738,0.000131845474243164],{"alloc_count":142,"starttime":1327721626,"uptime":2,"version":"1.2.9\-92\-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
3489
+ .ft P
3490
+ .fi
3491
+ .sp
3492
+ 明示的に \fBoutput_type\fP に \fBjson\fP を指定することもできます。この場合はJSON形式の出力になります:
3493
+ .sp
3494
+ .nf
3495
+ .ft C
3496
+ > status \-\-output_type json
3497
+ [[0,1327721639.08321,7.93933868408203e\-05],{"alloc_count":144,"starttime":1327721626,"uptime":13,"version":"1.2.9\-92\-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
3498
+ .ft P
3499
+ .fi
3500
+ .sp
3501
+ XML形式の出力にする場合は \fBoutput_type\fP に \fBxml\fP を指定します:
3502
+ .sp
3503
+ .nf
3504
+ .ft C
3505
+ > status \-\-output_type xml
3506
+ <?xml version="1.0" encoding="utf\-8"?>
3507
+ <RESULT CODE="0" UP="1327721649.61095" ELAPSED="0.000126361846923828">
3508
+ <RESULT>
3509
+ <TEXT>alloc_count</TEXT>
3510
+ <INT>146</INT>
3511
+ <TEXT>starttime</TEXT>
3512
+ <INT>1327721626</INT>
3513
+ <TEXT>uptime</TEXT>
3514
+ <INT>23</INT>
3515
+ <TEXT>version</TEXT>
3516
+ <TEXT>1.2.9\-92\-gb87d9f8</TEXT>
3517
+ <TEXT>n_queries</TEXT>
3518
+ <INT>0</INT>
3519
+ <TEXT>cache_hit_rate</TEXT>
3520
+ <FLOAT>0.0</FLOAT>
3521
+ <TEXT>command_version</TEXT>
3522
+ <INT>1</INT>
3523
+ <TEXT>default_command_version</TEXT>
3524
+ <INT>1</INT>
3525
+ <TEXT>max_command_version</TEXT>
3526
+ <INT>2</INT></RESULT>
3527
+ </RESULT>
3528
+ .ft P
3529
+ .fi
3530
+ .sp
3531
+ TSV形式の出力にする場合は \fBoutput_type\fP に \fBtsv\fP を指定します::<
3532
+ .sp
3533
+ .nf
3534
+ .ft C
3535
+ > status \-\-output_type tsv
3536
+ 0 1327721664.82675 0.000113964080810547
3537
+ "alloc_count" 146
3538
+ "starttime" 1327721626
3539
+ "uptime" 38
3540
+ "version" "1.2.9\-92\-gb87d9f8"
3541
+ "n_queries" 0
3542
+ "cache_hit_rate" 0.0
3543
+ "command_version" 1
3544
+ "default_command_version" 1
3545
+ "max_command_version" 2
3546
+ END
3547
+ .ft P
3548
+ .fi
3549
+ .sp
3550
+ MessagePack形式の出力にする場合は \fBoutput_type\fP に \fBmsgpack\fP を指定します::<
3551
+ .sp
3552
+ .nf
3553
+ .ft C
3554
+ > status \-\-output_type msgpack
3555
+ (... omitted because MessagePack is binary data format. ...)
3556
+ .ft P
3557
+ .fi
3558
+ .SS HTTP
3559
+ .sp
3560
+ \fBgroonga \-\-protocol http \-s DB_PATH\fP でHTTPクエリインターフェイスを使うことができます。groonga HTTPサーバーはデフォルトで10041番ポートで起動します。このクエリインターフェイスでは拡張子で出力形式を指定します。
3561
+ .sp
3562
+ 拡張子を指定しない場合はJSON形式の出力になります:
3563
+ .sp
3564
+ .nf
3565
+ .ft C
3566
+ % curl http://localhost:10041/d/status
3567
+ [[0,1327809294.54311,0.00082087516784668],{"alloc_count":155,"starttime":1327809282,"uptime":12,"version":"1.2.9\-92\-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
3568
+ .ft P
3569
+ .fi
3570
+ .sp
3571
+ 明示的に \fBjson\fP 拡張子を指定することもできます。この場合はJSON形式の出力になります:
3572
+ .sp
3573
+ .nf
3574
+ .ft C
3575
+ % curl http://localhost:10041/d/status.json
3576
+ [[0,1327809319.01929,9.5367431640625e\-05],{"alloc_count":157,"starttime":1327809282,"uptime":37,"version":"1.2.9\-92\-gb87d9f8","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":2}]
3577
+ .ft P
3578
+ .fi
3579
+ .sp
3580
+ XML形式の出力にする場合は \fBxml\fP 拡張子を指定します:
3581
+ .sp
3582
+ .nf
3583
+ .ft C
3584
+ % curl http://localhost:10041/d/status.xml
3585
+ <?xml version="1.0" encoding="utf\-8"?>
3586
+ <RESULT CODE="0" UP="1327809339.5782" ELAPSED="9.56058502197266e\-05">
3587
+ <RESULT>
3588
+ <TEXT>alloc_count</TEXT>
3589
+ <INT>159</INT>
3590
+ <TEXT>starttime</TEXT>
3591
+ <INT>1327809282</INT>
3592
+ <TEXT>uptime</TEXT>
3593
+ <INT>57</INT>
3594
+ <TEXT>version</TEXT>
3595
+ <TEXT>1.2.9\-92\-gb87d9f8</TEXT>
3596
+ <TEXT>n_queries</TEXT>
3597
+ <INT>0</INT>
3598
+ <TEXT>cache_hit_rate</TEXT>
3599
+ <FLOAT>0.0</FLOAT>
3600
+ <TEXT>command_version</TEXT>
3601
+ <INT>1</INT>
3602
+ <TEXT>default_command_version</TEXT>
3603
+ <INT>1</INT>
3604
+ <TEXT>max_command_version</TEXT>
3605
+ <INT>2</INT></RESULT>
3606
+ </RESULT>
3607
+ .ft P
3608
+ .fi
3609
+ .sp
3610
+ TSV形式の出力にする場合は \fBtsv\fP 拡張子を指定します:
3611
+ .sp
3612
+ .nf
3613
+ .ft C
3614
+ % curl http://localhost:10041/d/status.tsv
3615
+ 0 1327809366.84187 8.44001770019531e\-05
3616
+ "alloc_count" 159
3617
+ "starttime" 1327809282
3618
+ "uptime" 84
3619
+ "version" "1.2.9\-92\-gb87d9f8"
3620
+ "n_queries" 0
3621
+ "cache_hit_rate" 0.0
3622
+ "command_version" 1
3623
+ "default_command_version" 1
3624
+ "max_command_version" 2
3625
+ END
3626
+ .ft P
3627
+ .fi
3628
+ .sp
3629
+ MessagePack形式の出力にする場合は \fBmsgpack\fP 拡張子を指定します:
3630
+ .sp
3631
+ .nf
3632
+ .ft C
3633
+ % curl http://localhost:10041/d/status.msgpack
3634
+ (... omitted because MessagePack is binary data format. ...)
3635
+ .ft P
3636
+ .fi
3316
3637
  .SS コマンド
3317
3638
  .sp
3318
3639
  まず、すべてのコマンドに関係するコマンドバージョンについて説明します。その後、組み込みのコマンドを順に説明します。
@@ -4166,7 +4487,7 @@ delete \- 一件のレコードの削除
4166
4487
  .sp
4167
4488
  .nf
4168
4489
  .ft C
4169
- delete table [key [id]]
4490
+ delete table [key [id [filter]]]
4170
4491
  .ft P
4171
4492
  .fi
4172
4493
  .SS 説明
@@ -4197,6 +4518,13 @@ deleteは、使用しているデータベースのテーブルに1件のレコ
4197
4518
  .UNINDENT
4198
4519
  .UNINDENT
4199
4520
  .sp
4521
+ \fBfilter\fP
4522
+ .INDENT 0.0
4523
+ .INDENT 3.5
4524
+ script形式のgrn_expr文字列によってレコードを指定します。filterパラメータを指定する場合は、id及びkeyパラメータを指定してはいけません。
4525
+ .UNINDENT
4526
+ .UNINDENT
4527
+ .sp
4200
4528
  返値
4201
4529
  \-\-\-
4202
4530
  .SS json形式
@@ -5437,10 +5765,13 @@ table_createコマンドは、使用しているデータベースに対して
5437
5765
  .INDENT 0.0
5438
5766
  .TP
5439
5767
  .B 0, \fBTABLE_HASH_KEY\fP
5440
- 主キー値をハッシュ表で管理するテーブルを作成します。ハッシュ表を使用したテーブルでは、主キー値に完全一致するレコードを高速に検索することができます。
5768
+ 主キー値をハッシュ表で管理するテーブルを作成します。ハッシュ表を使用したテーブルでは、主キー値に完全一致するレコードを非常に高速に検索することができます。
5441
5769
  .TP
5442
5770
  .B 1, \fBTABLE_PAT_KEY\fP
5443
- 主キー値をパトリシア木で管理するテーブルを作成します。パトリシア木を使用したテーブルでは、主キー値に完全一致するレコード、前方一致するレコード、および最長共通接頭辞となるレコードを高速に検索することができます。また、キー値の昇降順でレコードを取り出したり、キー値の範囲での検索を行うことができます。また、flagsの値に64を加えることによって、後方一致検索も可能となります。
5771
+ 主キー値をパトリシア木で管理するテーブルを作成します。パトリシア木を使用したテーブルでは、主キー値に完全一致するレコードを検索することができるとともに、前方一致するレコード、および最長共通接頭辞となるレコードを高速に検索することができます。また、キー値の昇降順でレコードを取り出したり、キー値の範囲での検索を行うことができます。また、flagsの値に64を加えることによって、後方一致検索も可能となります。
5772
+ .TP
5773
+ .B 2, \fBTABLE_DAT_KEY\fP
5774
+ 主キー値をダブル配列で管理するテーブルを作成します。ダブル配列を使用したテーブルでは、主キー値に完全一致するレコードを高速に検索することができるとともに、前方一致するレコード、および最長共通接頭辞となるレコードを検索することができます。また、キー値の昇降順でレコードを取り出したり、キー値の範囲での検索を行うことができます。
5444
5775
  .TP
5445
5776
  .B 3, \fBTABLE_NO_KEY\fP
5446
5777
  主キーを持たないテーブルを作成します。各レコードはIDのみによって特定することができます。
@@ -5891,11 +6222,11 @@ ieee754形式の64bit浮動小数点数。
5891
6222
  .SS テーブルの主キーに指定できない型
5892
6223
  .sp
5893
6224
  Text型とLongText型については、テーブルの主キーに指定することはできません。
5894
- .SS ベクトルとして格納できない型
6225
+ .SS ベクターとして格納できない型
5895
6226
  .sp
5896
- groongaのカラムは、ある型のベクトルを保存することができます。しかし、ShortText, Text, LongTextの3つの型についてはベクトルとして保存することはできません。
6227
+ groongaのカラムは、ある型のベクターを保存することができます。しかし、ShortText, Text, LongTextの3つの型についてはベクターとして保存したり出力したりすることはできますが、検索条件やドリルダウン条件に指定することができません。
5897
6228
  .sp
5898
- テーブル型は、ベクトルとして格納することができます。よって、ShortTextのベクトルを保存したい場合には、主キーがShortText型のテーブルを別途作成し、そのテーブルを型として利用します。
6229
+ テーブル型は、ベクターとして格納することができます。よって、ShortTextのベクターを検索条件やドリルダウン条件に使用したい場合には、主キーがShortText型のテーブルを別途作成し、そのテーブルを型として利用します。
5899
6230
  脚注
5900
6231
  .IP [1] 5
5901
6232
  Object型はv1.2でサポートされます。
@@ -6031,7 +6362,7 @@ geo_distance \- 指定した2点の距離を計算する
6031
6362
  .sp
6032
6363
  .nf
6033
6364
  .ft C
6034
- geo_distance(point1, point2)
6365
+ geo_distance(point1, point2[, approximate_type])
6035
6366
  .ft P
6036
6367
  .fi
6037
6368
  .SS 説明
@@ -6039,7 +6370,14 @@ geo_distance(point1, point2)
6039
6370
  groonga組込関数の一つであるgeo_distanceについて説明します。組込関数は、script形式のgrn_expr中で呼び出すことができます。
6040
6371
  .sp
6041
6372
  geo_distance() 関数は、point1に指定した座標とpoint2に指定した座標の間の距離(近似値)を求めます。
6042
- geo_distance()の他に、距離計算アルゴリズムの異なる、geo_distance2()、geo_distance3()が使用できます。それぞれ、長方形近似、球面近似、ヒュベニの距離計算式によって距離を算出します。
6373
+ .sp
6374
+ ... note:
6375
+ .sp
6376
+ .nf
6377
+ .ft C
6378
+ geo_distance()の他に、距離計算アルゴリズムの異なる、geo_distance2()、geo_distance3()がありましたが、1.2.9から非推奨になりました。 \(ga\(gageo_distance2()\(ga\(ga の代わりに \(ga\(gageo_distance(point1, point2, "sphere")\(ga\(ga を、 \(ga\(gageo_distance3()\(ga\(ga の代わりに \(ga\(gageo_distance(point1, point2, "ellipsoid")\(ga\(ga を使ってください。
6379
+ .ft P
6380
+ .fi
6043
6381
  .SS 引数
6044
6382
  .sp
6045
6383
  \fBpoint1\fP
@@ -6055,6 +6393,42 @@ geo_distance()の他に、距離計算アルゴリズムの異なる、geo_dista
6055
6393
  距離を求める2点のうちもう一つを指定します。GeoPoint型の値、あるいは座標を示す文字列を指定できます。
6056
6394
  .UNINDENT
6057
6395
  .UNINDENT
6396
+ .sp
6397
+ \fBapproximate_type\fP
6398
+ .INDENT 0.0
6399
+ .INDENT 3.5
6400
+ 距離を求めるために地形をどのように近似するかを指定します。指定できる値は以下の通りです。
6401
+ .sp
6402
+ \fB"rectangle"\fP
6403
+ .INDENT 0.0
6404
+ .INDENT 3.5
6405
+ 方形近似で近似します。単純な計算式で距離を求めることができるため高速ですが、極付近では誤差が大きくなります。
6406
+ .sp
6407
+ \fB"rect"\fP と省略して指定することもできます。
6408
+ .sp
6409
+ この近似方法がデフォルト値です。 \fBapproximate_type\fP を省略した場合は方形近似になります。
6410
+ .UNINDENT
6411
+ .UNINDENT
6412
+ .sp
6413
+ \fB"sphere"\fP
6414
+ .INDENT 0.0
6415
+ .INDENT 3.5
6416
+ 球面近似で近似します。 \fB"rectangle"\fP よりも遅くなりますが、誤差は小さいです。
6417
+ .sp
6418
+ \fB"sphr"\fP と省略して指定することもできます。
6419
+ .UNINDENT
6420
+ .UNINDENT
6421
+ .sp
6422
+ \fB"ellipsoid"\fP
6423
+ .INDENT 0.0
6424
+ .INDENT 3.5
6425
+ 楕円体近似で近似します。距離の計算にはヒュベニの距離計算式を用います。 \fB"sphere"\fP よりも遅くなりますが、誤差は小さくなります。
6426
+ .sp
6427
+ \fB"ellip"\fP と省略して指定することもできます。
6428
+ .UNINDENT
6429
+ .UNINDENT
6430
+ .UNINDENT
6431
+ .UNINDENT
6058
6432
  .SS 返値
6059
6433
  .sp
6060
6434
  指定した2点の距離をFloat型の値(単位:メートル)として返します。
@@ -6063,7 +6437,19 @@ geo_distance()の他に、距離計算アルゴリズムの異なる、geo_dista
6063
6437
  .nf
6064
6438
  .ft C
6065
6439
  geo_distance(pos, "150x150")
6066
- 100
6440
+ 100.0
6441
+
6442
+ # 方形近似を利用
6443
+ geo_distance(pos, "150x150", "rectangle")
6444
+ 100.0
6445
+
6446
+ # 球面近似を利用
6447
+ geo_distance(pos, "150x150", "sphere")
6448
+ 100.0
6449
+
6450
+ # 楕円体近似を利用
6451
+ geo_distance(pos, "150x150", "ellipsoid")
6452
+ 100.0
6067
6453
  .ft P
6068
6454
  .fi
6069
6455
  脚注
@@ -6077,7 +6463,7 @@ geo_in_circle \- 座標が円の範囲内に存在するかどうかを調べま
6077
6463
  .sp
6078
6464
  .nf
6079
6465
  .ft C
6080
- geo_in_circle(point, center, radious_or_point)
6466
+ geo_in_circle(point, center, radious_or_point[, approximate_type])
6081
6467
  .ft P
6082
6468
  .fi
6083
6469
  .SS 説明
@@ -6108,6 +6494,42 @@ geo_in_circle() 関数は、pointに指定した座標が、centerに指定し
6108
6494
  Point型の値、あるいは座標を示す文字列を指定した場合は、円周上の点の一つの座標が指定されたものとみなします。
6109
6495
  .UNINDENT
6110
6496
  .UNINDENT
6497
+ .sp
6498
+ \fBapproximate_type\fP
6499
+ .INDENT 0.0
6500
+ .INDENT 3.5
6501
+ 半径からの距離を求めるために地形をどのように近似するかを指定します。指定できる値は以下の通りです。
6502
+ .sp
6503
+ \fB"rectangle"\fP
6504
+ .INDENT 0.0
6505
+ .INDENT 3.5
6506
+ 方形近似で近似します。単純な計算式で距離を求めることができるため高速ですが、極付近では誤差が大きくなります。
6507
+ .sp
6508
+ \fB"rect"\fP と省略して指定することもできます。
6509
+ .sp
6510
+ この近似方法がデフォルト値です。 \fBapproximate_type\fP を省略した場合は方形近似になります。
6511
+ .UNINDENT
6512
+ .UNINDENT
6513
+ .sp
6514
+ \fB"sphere"\fP
6515
+ .INDENT 0.0
6516
+ .INDENT 3.5
6517
+ 球面近似で近似します。 \fB"rectangle"\fP よりも遅くなりますが、誤差は小さいです。
6518
+ .sp
6519
+ \fB"sphr"\fP と省略して指定することもできます。
6520
+ .UNINDENT
6521
+ .UNINDENT
6522
+ .sp
6523
+ \fB"ellipsoid"\fP
6524
+ .INDENT 0.0
6525
+ .INDENT 3.5
6526
+ 楕円体近似で近似します。距離の計算にはヒュベニの距離計算式を用います。 \fB"sphere"\fP よりも遅くなりますが、誤差は小さくなります。
6527
+ .sp
6528
+ \fB"ellip"\fP と省略して指定することもできます。
6529
+ .UNINDENT
6530
+ .UNINDENT
6531
+ .UNINDENT
6532
+ .UNINDENT
6111
6533
  .SS 返値
6112
6534
  .sp
6113
6535
  pointに指定した座標が円の範囲内にあるかどうかをBool型の値で返します。
@@ -6668,7 +7090,7 @@ groongaにはいくつか制限事項があります。
6668
7090
  最大インデックスサイズ: 256GByte
6669
7091
  .UNINDENT
6670
7092
  .sp
6671
- (実際には他の諸条件の制約により上記の値まで到達しない場合もあります)
7093
+ 実際には他の諸条件の制約により上記の値まで到達しない場合もあります。
6672
7094
  .SH トラブルシューティング
6673
7095
  .SS 同じ検索キーワードなのに全文検索結果が異なる
6674
7096
  .sp
@@ -7462,7 +7884,7 @@ doc/locale/${LANGUAGE}/LC_MESSAGES/以下を.tar.gzや.zipなどでアーカイ
7462
7884
  .SH AUTHOR
7463
7885
  groonga project
7464
7886
  .SH COPYRIGHT
7465
- 2009-2011, Brazil, Inc
7887
+ 2009-2012, Brazil, Inc
7466
7888
  .\" Generated by docutils manpage writer.
7467
7889
  .\"
7468
7890
  .