rroonga 5.0.0-x86-mingw32 → 5.0.1-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (733) hide show
  1. checksums.yaml +8 -8
  2. data/.yardopts +1 -0
  3. data/Rakefile +1 -16
  4. data/example/bookmark.rb +1 -6
  5. data/example/index-html.rb +0 -1
  6. data/ext/groonga/extconf.rb +4 -7
  7. data/ext/groonga/rb-grn-array.c +1 -1
  8. data/ext/groonga/rb-grn-column.c +33 -67
  9. data/ext/groonga/rb-grn-context.c +5 -5
  10. data/ext/groonga/rb-grn-database.c +2 -2
  11. data/ext/groonga/rb-grn-double-array-trie.c +4 -2
  12. data/ext/groonga/rb-grn-encoding-support.c +7 -1
  13. data/ext/groonga/rb-grn-equal-operator.c +85 -0
  14. data/ext/groonga/rb-grn-exception.c +17 -0
  15. data/ext/groonga/rb-grn-expression.c +85 -43
  16. data/ext/groonga/rb-grn-greater-equal-operator.c +88 -0
  17. data/ext/groonga/rb-grn-greater-operator.c +85 -0
  18. data/ext/groonga/rb-grn-hash.c +1 -1
  19. data/ext/groonga/rb-grn-index-column.c +150 -11
  20. data/ext/groonga/rb-grn-less-equal-operator.c +88 -0
  21. data/ext/groonga/rb-grn-less-operator.c +85 -0
  22. data/ext/groonga/rb-grn-logger.c +5 -5
  23. data/ext/groonga/rb-grn-match-operator.c +86 -0
  24. data/ext/groonga/rb-grn-normalizer.c +8 -1
  25. data/ext/groonga/rb-grn-not-equal-operator.c +85 -0
  26. data/ext/groonga/rb-grn-object.c +170 -36
  27. data/ext/groonga/rb-grn-operator.c +395 -172
  28. data/ext/groonga/rb-grn-patricia-trie.c +10 -8
  29. data/ext/groonga/rb-grn-plugin.c +51 -3
  30. data/ext/groonga/rb-grn-prefix-operator.c +86 -0
  31. data/ext/groonga/rb-grn-procedure-type.c +4 -0
  32. data/ext/groonga/rb-grn-query-logger.c +4 -4
  33. data/ext/groonga/rb-grn-regexp-operator.c +85 -0
  34. data/ext/groonga/rb-grn-snippet.c +1 -1
  35. data/ext/groonga/rb-grn-table-key-support.c +9 -5
  36. data/ext/groonga/rb-grn-table.c +52 -66
  37. data/ext/groonga/rb-grn-type.c +1 -1
  38. data/ext/groonga/rb-grn-utils.c +22 -3
  39. data/ext/groonga/rb-grn.h +31 -4
  40. data/ext/groonga/rb-groonga.c +9 -9
  41. data/lib/1.9/groonga.so +0 -0
  42. data/lib/2.0/groonga.so +0 -0
  43. data/lib/2.1/groonga.so +0 -0
  44. data/lib/2.2/groonga.so +0 -0
  45. data/lib/groonga/context.rb +31 -0
  46. data/lib/groonga/expression-builder.rb +14 -1
  47. data/lib/groonga/record.rb +10 -8
  48. data/lib/groonga/schema.rb +3 -1
  49. data/rroonga-build.rb +2 -2
  50. data/rroonga.gemspec +3 -3
  51. data/test/groonga-test-utils.rb +4 -0
  52. data/test/test-column.rb +28 -26
  53. data/test/test-exception.rb +1 -0
  54. data/test/test-expression-builder.rb +83 -1
  55. data/test/test-expression.rb +80 -48
  56. data/test/test-index-column.rb +102 -29
  57. data/test/test-normalizer.rb +35 -29
  58. data/test/test-operator.rb +214 -0
  59. data/test/test-plugin.rb +24 -6
  60. data/test/test-procedure.rb +29 -0
  61. data/test/test-schema-type.rb +14 -0
  62. data/test/test-table-select-mecab.rb +1 -4
  63. data/test/test-table.rb +7 -0
  64. data/test/test-token-regexp.rb +30 -0
  65. data/test/test-type.rb +24 -0
  66. data/vendor/local/bin/grndb.exe +0 -0
  67. data/vendor/local/bin/groonga-benchmark.exe +0 -0
  68. data/vendor/local/bin/groonga.exe +0 -0
  69. data/vendor/local/bin/libgcc_s_sjlj-1.dll +0 -0
  70. data/vendor/local/bin/libgroonga-0.dll +0 -0
  71. data/vendor/local/bin/libmecab-1.dll +0 -0
  72. data/vendor/local/bin/libmsgpack-3.dll +0 -0
  73. data/vendor/local/bin/libmsgpackc-2.dll +0 -0
  74. data/vendor/local/bin/libonig-5.dll +0 -0
  75. data/vendor/local/bin/libstdc++-6.dll +0 -0
  76. data/vendor/local/bin/lz4.exe +0 -0
  77. data/vendor/local/bin/lz4c.exe +0 -0
  78. data/vendor/local/bin/lz4cat +0 -0
  79. data/vendor/local/bin/mecab-config +2 -2
  80. data/vendor/local/bin/mecab.exe +0 -0
  81. data/vendor/local/bin/onig-config +1 -1
  82. data/vendor/local/bin/zlib1.dll +0 -0
  83. data/vendor/local/etc/groonga/groonga.conf +1 -1
  84. data/vendor/local/etc/groonga/httpd/groonga-httpd.conf +2 -2
  85. data/vendor/local/include/groonga/groonga.h +1 -0
  86. data/vendor/local/include/groonga/groonga/expr.h +2 -0
  87. data/vendor/local/include/groonga/groonga/groonga.h +32 -5
  88. data/vendor/local/include/groonga/groonga/ii.h +7 -0
  89. data/vendor/local/include/groonga/groonga/obj.h +37 -0
  90. data/vendor/local/include/groonga/groonga/scorer.h +95 -0
  91. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
  92. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
  93. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
  94. data/vendor/local/lib/groonga/plugins/query_expanders/tsv.la +2 -2
  95. data/vendor/local/lib/groonga/plugins/ruby/eval.a +0 -0
  96. data/vendor/local/lib/groonga/plugins/ruby/eval.dll +0 -0
  97. data/vendor/local/lib/groonga/plugins/ruby/eval.dll.a +0 -0
  98. data/vendor/local/lib/groonga/plugins/ruby/eval.la +2 -2
  99. data/vendor/local/lib/groonga/plugins/ruby/load.a +0 -0
  100. data/vendor/local/lib/groonga/plugins/ruby/load.dll +0 -0
  101. data/vendor/local/lib/groonga/plugins/ruby/load.dll.a +0 -0
  102. data/vendor/local/lib/groonga/plugins/ruby/load.la +2 -2
  103. data/vendor/local/lib/groonga/plugins/sharding/logical_count.rb +6 -3
  104. data/vendor/local/lib/groonga/plugins/sharding/logical_enumerator.rb +6 -5
  105. data/vendor/local/lib/groonga/plugins/sharding/logical_range_filter.rb +421 -17
  106. data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
  107. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
  108. data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
  109. data/vendor/local/lib/groonga/plugins/suggest/suggest.la +2 -2
  110. data/vendor/local/lib/groonga/plugins/table/table.a +0 -0
  111. data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
  112. data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
  113. data/vendor/local/lib/groonga/plugins/table/table.la +2 -2
  114. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.a +0 -0
  115. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll +0 -0
  116. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.dll.a +0 -0
  117. data/vendor/local/lib/groonga/plugins/token_filters/stop_word.la +2 -2
  118. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
  119. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
  120. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
  121. data/vendor/local/lib/groonga/plugins/tokenizers/mecab.la +2 -2
  122. data/vendor/local/lib/groonga/scripts/ruby/backtrace_entry.rb +12 -4
  123. data/vendor/local/lib/groonga/scripts/ruby/database.rb +11 -3
  124. data/vendor/local/lib/groonga/scripts/ruby/expression.rb +23 -0
  125. data/vendor/local/lib/groonga/scripts/ruby/expression_size_estimator.rb +158 -0
  126. data/vendor/local/lib/groonga/scripts/ruby/index_column.rb +39 -0
  127. data/vendor/local/lib/groonga/scripts/ruby/initialize/post.rb +4 -0
  128. data/vendor/local/lib/groonga/scripts/ruby/initialize/pre.rb +2 -0
  129. data/vendor/local/lib/groonga/scripts/ruby/logger.rb +11 -7
  130. data/vendor/local/lib/groonga/scripts/ruby/object.rb +11 -0
  131. data/vendor/local/lib/groonga/scripts/ruby/operator.rb +22 -0
  132. data/vendor/local/lib/groonga/scripts/ruby/scan_info.rb +7 -2
  133. data/vendor/local/lib/groonga/scripts/ruby/scan_info_builder.rb +7 -11
  134. data/vendor/local/lib/groonga/scripts/ruby/scan_info_data.rb +137 -34
  135. data/vendor/local/lib/groonga/scripts/ruby/scan_info_search_index.rb +9 -0
  136. data/vendor/local/lib/libgroonga.a +0 -0
  137. data/vendor/local/lib/libgroonga.dll.a +0 -0
  138. data/vendor/local/lib/libgroonga.la +2 -2
  139. data/vendor/local/lib/liblz4.a +0 -0
  140. data/vendor/local/lib/liblz4.dll +0 -0
  141. data/vendor/local/lib/liblz4.dll.1 +0 -0
  142. data/vendor/local/lib/liblz4.dll.1.5.0 +0 -0
  143. data/vendor/local/lib/libmecab.a +0 -0
  144. data/vendor/local/lib/libmecab.dll.a +0 -0
  145. data/vendor/local/lib/libmecab.la +2 -2
  146. data/vendor/local/lib/libmsgpack.a +0 -0
  147. data/vendor/local/lib/libmsgpack.dll.a +0 -0
  148. data/vendor/local/lib/libmsgpack.la +2 -2
  149. data/vendor/local/lib/libmsgpackc.a +0 -0
  150. data/vendor/local/lib/libmsgpackc.dll.a +0 -0
  151. data/vendor/local/lib/libmsgpackc.la +2 -2
  152. data/vendor/local/lib/libonig.a +0 -0
  153. data/vendor/local/lib/libonig.dll.a +0 -0
  154. data/vendor/local/lib/libonig.la +2 -2
  155. data/vendor/local/lib/libz.a +0 -0
  156. data/vendor/local/lib/libz.dll.a +0 -0
  157. data/vendor/local/lib/pkgconfig/groonga.pc +3 -3
  158. data/vendor/local/lib/pkgconfig/liblz4.pc +5 -5
  159. data/vendor/local/lib/pkgconfig/msgpack.pc +1 -1
  160. data/vendor/local/lib/pkgconfig/oniguruma.pc +6 -6
  161. data/vendor/local/lib/pkgconfig/zlib.pc +3 -3
  162. data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
  163. data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
  164. data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
  165. data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
  166. data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
  167. data/vendor/local/sbin/groonga-httpd-restart +1 -1
  168. data/vendor/local/sbin/groonga-httpd.exe +0 -0
  169. data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
  170. data/vendor/local/share/doc/groonga/en/html/_images/used-when-indexing.png +0 -0
  171. data/vendor/local/share/doc/groonga/en/html/_images/used-when-searching.png +0 -0
  172. data/vendor/local/share/doc/groonga/en/html/_sources/characteristic.txt +1 -1
  173. data/vendor/local/share/doc/groonga/en/html/_sources/contribution/development/release.txt +32 -17
  174. data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
  175. data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
  176. data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +4 -4
  177. data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
  178. data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
  179. data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
  180. data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -3
  181. data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +9 -9
  182. data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +194 -0
  183. data/vendor/local/share/doc/groonga/en/html/_sources/news/1.0.x.txt +1 -1
  184. data/vendor/local/share/doc/groonga/en/html/_sources/news/3.x.txt +2 -2
  185. data/vendor/local/share/doc/groonga/en/html/_sources/news/4.x.txt +2 -2
  186. data/vendor/local/share/doc/groonga/en/html/_sources/reference.txt +2 -0
  187. data/vendor/local/share/doc/groonga/en/html/_sources/reference/api.txt +3 -0
  188. data/vendor/local/share/doc/groonga/en/html/_sources/reference/api/grn_ctx.txt +42 -0
  189. data/vendor/local/share/doc/groonga/en/html/_sources/reference/api/overview.txt +54 -0
  190. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/cache_limit.txt +1 -1
  191. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_create.txt +2 -2
  192. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_list.txt +1 -1
  193. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_rename.txt +3 -3
  194. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/delete.txt +4 -4
  195. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/load.txt +5 -5
  196. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/lock_clear.txt +4 -4
  197. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_count.txt +173 -0
  198. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/logical_range_filter.txt +112 -0
  199. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/normalize.txt +7 -6
  200. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/plugin_register.txt +64 -0
  201. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/plugin_unregister.txt +63 -0
  202. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/register.txt +11 -1
  203. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/request_cancel.txt +3 -2
  204. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/ruby_eval.txt +1 -1
  205. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/ruby_load.txt +1 -1
  206. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/select.txt +17 -17
  207. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/suggest.txt +12 -12
  208. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_create.txt +7 -7
  209. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_tokenize.txt +4 -4
  210. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/tokenize.txt +6 -6
  211. data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/truncate.txt +1 -1
  212. data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga.txt +47 -26
  213. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/between.txt +5 -5
  214. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/geo_distance.txt +3 -3
  215. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/highlight_full.txt +6 -6
  216. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/highlight_html.txt +1 -1
  217. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/html_untag.txt +1 -1
  218. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/in_values.txt +54 -2
  219. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/query.txt +4 -4
  220. data/vendor/local/share/doc/groonga/en/html/_sources/reference/functions/sub_filter.txt +4 -4
  221. data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/query_syntax.txt +44 -18
  222. data/vendor/local/share/doc/groonga/en/html/_sources/reference/grn_expr/script_syntax.txt +41 -11
  223. data/vendor/local/share/doc/groonga/en/html/_sources/reference/indexing.txt +2 -0
  224. data/vendor/local/share/doc/groonga/en/html/_sources/reference/normalizers.txt +4 -0
  225. data/vendor/local/share/doc/groonga/en/html/_sources/reference/operations.txt +2 -1
  226. data/vendor/local/share/doc/groonga/en/html/_sources/reference/regular_expression.txt +403 -0
  227. data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorer.txt +217 -0
  228. data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorers/scorer_tf_at_most.txt +22 -0
  229. data/vendor/local/share/doc/groonga/en/html/_sources/reference/scorers/scorer_tf_idf.txt +110 -0
  230. data/vendor/local/share/doc/groonga/en/html/_sources/reference/scoring_note.txt +13 -0
  231. data/vendor/local/share/doc/groonga/en/html/_sources/reference/tables.txt +8 -0
  232. data/vendor/local/share/doc/groonga/en/html/_sources/reference/tokenizers.txt +530 -16
  233. data/vendor/local/share/doc/groonga/en/html/_sources/server.txt +2 -1
  234. data/vendor/local/share/doc/groonga/en/html/_sources/server/memcached.txt +15 -0
  235. data/vendor/local/share/doc/groonga/en/html/_sources/spec/gqtp.txt +66 -1
  236. data/vendor/local/share/doc/groonga/en/html/_sources/troubleshooting/different_results_with_the_same_keyword.txt +1 -1
  237. data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/network.txt +0 -81
  238. data/vendor/local/share/doc/groonga/en/html/_static/basic.css +6 -68
  239. data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +1 -26
  240. data/vendor/local/share/doc/groonga/en/html/_static/down-pressed.png +0 -0
  241. data/vendor/local/share/doc/groonga/en/html/_static/down.png +0 -0
  242. data/vendor/local/share/doc/groonga/en/html/_static/file.png +0 -0
  243. data/vendor/local/share/doc/groonga/en/html/_static/jquery.js +9404 -4
  244. data/vendor/local/share/doc/groonga/en/html/_static/minus.png +0 -0
  245. data/vendor/local/share/doc/groonga/en/html/_static/plus.png +0 -0
  246. data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +2 -2
  247. data/vendor/local/share/doc/groonga/en/html/_static/underscore.js +1415 -31
  248. data/vendor/local/share/doc/groonga/en/html/_static/up-pressed.png +0 -0
  249. data/vendor/local/share/doc/groonga/en/html/_static/up.png +0 -0
  250. data/vendor/local/share/doc/groonga/en/html/_static/websupport.js +15 -15
  251. data/vendor/local/share/doc/groonga/en/html/characteristic.html +18 -20
  252. data/vendor/local/share/doc/groonga/en/html/client.html +22 -24
  253. data/vendor/local/share/doc/groonga/en/html/community.html +17 -19
  254. data/vendor/local/share/doc/groonga/en/html/contribution.html +18 -20
  255. data/vendor/local/share/doc/groonga/en/html/contribution/development.html +17 -19
  256. data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +17 -19
  257. data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +17 -19
  258. data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +17 -19
  259. data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +51 -38
  260. data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +17 -19
  261. data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +17 -19
  262. data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +17 -19
  263. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +17 -19
  264. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +17 -19
  265. data/vendor/local/share/doc/groonga/en/html/contribution/documentation/introduction.html +24 -26
  266. data/vendor/local/share/doc/groonga/en/html/contribution/report.html +17 -19
  267. data/vendor/local/share/doc/groonga/en/html/development.html +17 -19
  268. data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +24 -26
  269. data/vendor/local/share/doc/groonga/en/html/genindex.html +26 -14
  270. data/vendor/local/share/doc/groonga/en/html/index.html +150 -130
  271. data/vendor/local/share/doc/groonga/en/html/install.html +32 -34
  272. data/vendor/local/share/doc/groonga/en/html/install/centos.html +28 -30
  273. data/vendor/local/share/doc/groonga/en/html/install/debian.html +24 -26
  274. data/vendor/local/share/doc/groonga/en/html/install/fedora.html +28 -30
  275. data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +22 -24
  276. data/vendor/local/share/doc/groonga/en/html/install/others.html +87 -89
  277. data/vendor/local/share/doc/groonga/en/html/install/solaris.html +22 -24
  278. data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +25 -27
  279. data/vendor/local/share/doc/groonga/en/html/install/windows.html +30 -32
  280. data/vendor/local/share/doc/groonga/en/html/limitations.html +17 -19
  281. data/vendor/local/share/doc/groonga/en/html/news.html +256 -27
  282. data/vendor/local/share/doc/groonga/en/html/news/0.x.html +17 -19
  283. data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +19 -21
  284. data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +17 -19
  285. data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +32 -34
  286. data/vendor/local/share/doc/groonga/en/html/news/1.3.x.html +27 -29
  287. data/vendor/local/share/doc/groonga/en/html/news/2.x.html +98 -100
  288. data/vendor/local/share/doc/groonga/en/html/news/3.x.html +68 -70
  289. data/vendor/local/share/doc/groonga/en/html/news/4.x.html +102 -104
  290. data/vendor/local/share/doc/groonga/en/html/news/senna.html +17 -19
  291. data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
  292. data/vendor/local/share/doc/groonga/en/html/reference.html +139 -118
  293. data/vendor/local/share/doc/groonga/en/html/reference/api.html +51 -52
  294. data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +49 -51
  295. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +60 -62
  296. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +80 -82
  297. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +42 -44
  298. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_content_type.html +37 -39
  299. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +130 -80
  300. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +48 -50
  301. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +44 -46
  302. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +79 -81
  303. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +42 -44
  304. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +44 -46
  305. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +42 -44
  306. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +41 -43
  307. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +41 -43
  308. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +40 -42
  309. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +89 -91
  310. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +44 -46
  311. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +39 -41
  312. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +75 -77
  313. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +64 -66
  314. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +40 -42
  315. data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +39 -41
  316. data/vendor/local/share/doc/groonga/en/html/reference/api/overview.html +202 -0
  317. data/vendor/local/share/doc/groonga/en/html/reference/api/plugin.html +58 -60
  318. data/vendor/local/share/doc/groonga/en/html/reference/cast.html +17 -19
  319. data/vendor/local/share/doc/groonga/en/html/reference/column.html +17 -19
  320. data/vendor/local/share/doc/groonga/en/html/reference/columns/index.html +17 -19
  321. data/vendor/local/share/doc/groonga/en/html/reference/columns/pseudo.html +22 -24
  322. data/vendor/local/share/doc/groonga/en/html/reference/columns/scalar.html +17 -19
  323. data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +58 -60
  324. data/vendor/local/share/doc/groonga/en/html/reference/command.html +56 -54
  325. data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +17 -19
  326. data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +53 -55
  327. data/vendor/local/share/doc/groonga/en/html/reference/command/request_id.html +22 -24
  328. data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +94 -96
  329. data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +39 -41
  330. data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +43 -45
  331. data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +23 -25
  332. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +39 -41
  333. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +71 -73
  334. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +24 -26
  335. data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +44 -46
  336. data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +37 -39
  337. data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +24 -26
  338. data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +35 -37
  339. data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +22 -24
  340. data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +43 -45
  341. data/vendor/local/share/doc/groonga/en/html/reference/commands/lock_clear.html +49 -47
  342. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +23 -25
  343. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +24 -26
  344. data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +26 -28
  345. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_count.html +314 -0
  346. data/vendor/local/share/doc/groonga/en/html/reference/commands/logical_range_filter.html +252 -0
  347. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +87 -89
  348. data/vendor/local/share/doc/groonga/en/html/reference/commands/normalizer_list.html +46 -48
  349. data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_register.html +195 -0
  350. data/vendor/local/share/doc/groonga/en/html/reference/commands/plugin_unregister.html +193 -0
  351. data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +38 -40
  352. data/vendor/local/share/doc/groonga/en/html/reference/commands/range_filter.html +37 -39
  353. data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +61 -51
  354. data/vendor/local/share/doc/groonga/en/html/reference/commands/request_cancel.html +72 -74
  355. data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +54 -56
  356. data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +54 -56
  357. data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +590 -592
  358. data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +37 -39
  359. data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +40 -42
  360. data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +92 -94
  361. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +152 -154
  362. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +49 -51
  363. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +39 -41
  364. data/vendor/local/share/doc/groonga/en/html/reference/commands/table_tokenize.html +68 -70
  365. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +103 -105
  366. data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenizer_list.html +45 -47
  367. data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +52 -54
  368. data/vendor/local/share/doc/groonga/en/html/reference/executables.html +19 -21
  369. data/vendor/local/share/doc/groonga/en/html/reference/executables/grndb.html +35 -37
  370. data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +21 -23
  371. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +26 -28
  372. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +73 -75
  373. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +17 -19
  374. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +17 -19
  375. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +42 -44
  376. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +34 -36
  377. data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +124 -90
  378. data/vendor/local/share/doc/groonga/en/html/reference/function.html +42 -44
  379. data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +66 -68
  380. data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +44 -46
  381. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +113 -115
  382. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +55 -57
  383. data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +45 -47
  384. data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_full.html +81 -83
  385. data/vendor/local/share/doc/groonga/en/html/reference/functions/highlight_html.html +65 -67
  386. data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +54 -56
  387. data/vendor/local/share/doc/groonga/en/html/reference/functions/in_values.html +135 -44
  388. data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +40 -42
  389. data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +81 -83
  390. data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +43 -45
  391. data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +67 -69
  392. data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +66 -70
  393. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +39 -41
  394. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +349 -286
  395. data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +483 -417
  396. data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +35 -37
  397. data/vendor/local/share/doc/groonga/en/html/reference/log.html +38 -40
  398. data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +44 -46
  399. data/vendor/local/share/doc/groonga/en/html/reference/operations.html +30 -31
  400. data/vendor/local/share/doc/groonga/en/html/reference/operations/geolocation_search.html +32 -34
  401. data/vendor/local/share/doc/groonga/en/html/reference/output.html +32 -34
  402. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +17 -19
  403. data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +60 -62
  404. data/vendor/local/share/doc/groonga/en/html/reference/regular_expression.html +931 -0
  405. data/vendor/local/share/doc/groonga/en/html/reference/scorer.html +442 -0
  406. data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_at_most.html +153 -0
  407. data/vendor/local/share/doc/groonga/en/html/reference/scorers/scorer_tf_idf.html +287 -0
  408. data/vendor/local/share/doc/groonga/en/html/reference/scoring_note.html +114 -0
  409. data/vendor/local/share/doc/groonga/en/html/reference/suggest.html +45 -47
  410. data/vendor/local/share/doc/groonga/en/html/reference/suggest/completion.html +51 -53
  411. data/vendor/local/share/doc/groonga/en/html/reference/suggest/correction.html +40 -42
  412. data/vendor/local/share/doc/groonga/en/html/reference/suggest/introduction.html +38 -40
  413. data/vendor/local/share/doc/groonga/en/html/reference/suggest/suggestion.html +40 -42
  414. data/vendor/local/share/doc/groonga/en/html/reference/tables.html +52 -54
  415. data/vendor/local/share/doc/groonga/en/html/reference/token_filters.html +36 -38
  416. data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +1394 -34
  417. data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +57 -59
  418. data/vendor/local/share/doc/groonga/en/html/reference/types.html +38 -40
  419. data/vendor/local/share/doc/groonga/en/html/search.html +11 -11
  420. data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
  421. data/vendor/local/share/doc/groonga/en/html/server.html +23 -24
  422. data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +28 -30
  423. data/vendor/local/share/doc/groonga/en/html/server/http.html +42 -44
  424. data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +68 -70
  425. data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +30 -32
  426. data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +29 -31
  427. data/vendor/local/share/doc/groonga/en/html/server/memcached.html +137 -0
  428. data/vendor/local/share/doc/groonga/en/html/server/package.html +36 -38
  429. data/vendor/local/share/doc/groonga/en/html/spec.html +22 -24
  430. data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +208 -129
  431. data/vendor/local/share/doc/groonga/en/html/spec/search.html +17 -19
  432. data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +17 -19
  433. data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +18 -20
  434. data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +18 -20
  435. data/vendor/local/share/doc/groonga/en/html/tutorial.html +21 -25
  436. data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +17 -19
  437. data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +31 -33
  438. data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +20 -22
  439. data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +17 -19
  440. data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +17 -19
  441. data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +21 -23
  442. data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +50 -52
  443. data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +27 -125
  444. data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +18 -20
  445. data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +20 -22
  446. data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +33 -35
  447. data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
  448. data/vendor/local/share/doc/groonga/ja/html/_images/used-when-indexing.png +0 -0
  449. data/vendor/local/share/doc/groonga/ja/html/_images/used-when-searching.png +0 -0
  450. data/vendor/local/share/doc/groonga/ja/html/_sources/characteristic.txt +1 -1
  451. data/vendor/local/share/doc/groonga/ja/html/_sources/contribution/development/release.txt +32 -17
  452. data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
  453. data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
  454. data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +4 -4
  455. data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
  456. data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
  457. data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
  458. data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -3
  459. data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +9 -9
  460. data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +194 -0
  461. data/vendor/local/share/doc/groonga/ja/html/_sources/news/1.0.x.txt +1 -1
  462. data/vendor/local/share/doc/groonga/ja/html/_sources/news/3.x.txt +2 -2
  463. data/vendor/local/share/doc/groonga/ja/html/_sources/news/4.x.txt +2 -2
  464. data/vendor/local/share/doc/groonga/ja/html/_sources/reference.txt +2 -0
  465. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api.txt +3 -0
  466. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api/grn_ctx.txt +42 -0
  467. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/api/overview.txt +54 -0
  468. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/cache_limit.txt +1 -1
  469. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_create.txt +2 -2
  470. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_list.txt +1 -1
  471. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_rename.txt +3 -3
  472. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/delete.txt +4 -4
  473. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/load.txt +5 -5
  474. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/lock_clear.txt +4 -4
  475. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_count.txt +173 -0
  476. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/logical_range_filter.txt +112 -0
  477. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/normalize.txt +7 -6
  478. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/plugin_register.txt +64 -0
  479. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/plugin_unregister.txt +63 -0
  480. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/register.txt +11 -1
  481. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/request_cancel.txt +3 -2
  482. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/ruby_eval.txt +1 -1
  483. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/ruby_load.txt +1 -1
  484. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/select.txt +17 -17
  485. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/suggest.txt +12 -12
  486. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_create.txt +7 -7
  487. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_tokenize.txt +4 -4
  488. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/tokenize.txt +6 -6
  489. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/truncate.txt +1 -1
  490. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga.txt +47 -26
  491. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/between.txt +5 -5
  492. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/geo_distance.txt +3 -3
  493. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/highlight_full.txt +6 -6
  494. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/highlight_html.txt +1 -1
  495. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/html_untag.txt +1 -1
  496. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/in_values.txt +54 -2
  497. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/query.txt +4 -4
  498. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/functions/sub_filter.txt +4 -4
  499. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/query_syntax.txt +44 -18
  500. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/grn_expr/script_syntax.txt +41 -11
  501. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/indexing.txt +2 -0
  502. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/normalizers.txt +4 -0
  503. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/operations.txt +2 -1
  504. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/regular_expression.txt +403 -0
  505. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorer.txt +217 -0
  506. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorers/scorer_tf_at_most.txt +22 -0
  507. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scorers/scorer_tf_idf.txt +110 -0
  508. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/scoring_note.txt +13 -0
  509. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tables.txt +8 -0
  510. data/vendor/local/share/doc/groonga/ja/html/_sources/reference/tokenizers.txt +530 -16
  511. data/vendor/local/share/doc/groonga/ja/html/_sources/server.txt +2 -1
  512. data/vendor/local/share/doc/groonga/ja/html/_sources/server/memcached.txt +15 -0
  513. data/vendor/local/share/doc/groonga/ja/html/_sources/spec/gqtp.txt +66 -1
  514. data/vendor/local/share/doc/groonga/ja/html/_sources/troubleshooting/different_results_with_the_same_keyword.txt +1 -1
  515. data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/network.txt +0 -81
  516. data/vendor/local/share/doc/groonga/ja/html/_static/basic.css +6 -68
  517. data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +1 -26
  518. data/vendor/local/share/doc/groonga/ja/html/_static/down-pressed.png +0 -0
  519. data/vendor/local/share/doc/groonga/ja/html/_static/down.png +0 -0
  520. data/vendor/local/share/doc/groonga/ja/html/_static/file.png +0 -0
  521. data/vendor/local/share/doc/groonga/ja/html/_static/jquery.js +9404 -4
  522. data/vendor/local/share/doc/groonga/ja/html/_static/minus.png +0 -0
  523. data/vendor/local/share/doc/groonga/ja/html/_static/plus.png +0 -0
  524. data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +2 -2
  525. data/vendor/local/share/doc/groonga/ja/html/_static/underscore.js +1415 -31
  526. data/vendor/local/share/doc/groonga/ja/html/_static/up-pressed.png +0 -0
  527. data/vendor/local/share/doc/groonga/ja/html/_static/up.png +0 -0
  528. data/vendor/local/share/doc/groonga/ja/html/_static/websupport.js +15 -15
  529. data/vendor/local/share/doc/groonga/ja/html/characteristic.html +17 -19
  530. data/vendor/local/share/doc/groonga/ja/html/client.html +22 -24
  531. data/vendor/local/share/doc/groonga/ja/html/community.html +17 -19
  532. data/vendor/local/share/doc/groonga/ja/html/contribution.html +18 -20
  533. data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +17 -19
  534. data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +17 -19
  535. data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +17 -19
  536. data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +17 -19
  537. data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +51 -38
  538. data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +17 -19
  539. data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +17 -19
  540. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +17 -19
  541. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +17 -19
  542. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +17 -19
  543. data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/introduction.html +24 -26
  544. data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +17 -19
  545. data/vendor/local/share/doc/groonga/ja/html/development.html +17 -19
  546. data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +20 -22
  547. data/vendor/local/share/doc/groonga/ja/html/genindex.html +26 -14
  548. data/vendor/local/share/doc/groonga/ja/html/index.html +150 -130
  549. data/vendor/local/share/doc/groonga/ja/html/install.html +32 -34
  550. data/vendor/local/share/doc/groonga/ja/html/install/centos.html +31 -33
  551. data/vendor/local/share/doc/groonga/ja/html/install/debian.html +25 -27
  552. data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +29 -31
  553. data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +22 -24
  554. data/vendor/local/share/doc/groonga/ja/html/install/others.html +78 -80
  555. data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +21 -23
  556. data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +26 -28
  557. data/vendor/local/share/doc/groonga/ja/html/install/windows.html +29 -31
  558. data/vendor/local/share/doc/groonga/ja/html/limitations.html +17 -19
  559. data/vendor/local/share/doc/groonga/ja/html/news.html +210 -27
  560. data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +17 -19
  561. data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +19 -21
  562. data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +17 -19
  563. data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +32 -34
  564. data/vendor/local/share/doc/groonga/ja/html/news/1.3.x.html +27 -29
  565. data/vendor/local/share/doc/groonga/ja/html/news/2.x.html +91 -93
  566. data/vendor/local/share/doc/groonga/ja/html/news/3.x.html +59 -61
  567. data/vendor/local/share/doc/groonga/ja/html/news/4.x.html +89 -91
  568. data/vendor/local/share/doc/groonga/ja/html/news/senna.html +17 -19
  569. data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
  570. data/vendor/local/share/doc/groonga/ja/html/reference.html +139 -118
  571. data/vendor/local/share/doc/groonga/ja/html/reference/api.html +51 -52
  572. data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +49 -51
  573. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +55 -57
  574. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +80 -82
  575. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +42 -44
  576. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_content_type.html +37 -39
  577. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +126 -76
  578. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +48 -50
  579. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +44 -46
  580. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +74 -76
  581. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +42 -44
  582. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +44 -46
  583. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +42 -44
  584. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +41 -43
  585. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +41 -43
  586. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +40 -42
  587. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +89 -91
  588. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +44 -46
  589. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +39 -41
  590. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +75 -77
  591. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +64 -66
  592. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +40 -42
  593. data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +39 -41
  594. data/vendor/local/share/doc/groonga/ja/html/reference/api/overview.html +197 -0
  595. data/vendor/local/share/doc/groonga/ja/html/reference/api/plugin.html +58 -60
  596. data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +17 -19
  597. data/vendor/local/share/doc/groonga/ja/html/reference/column.html +17 -19
  598. data/vendor/local/share/doc/groonga/ja/html/reference/columns/index.html +17 -19
  599. data/vendor/local/share/doc/groonga/ja/html/reference/columns/pseudo.html +22 -24
  600. data/vendor/local/share/doc/groonga/ja/html/reference/columns/scalar.html +17 -19
  601. data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +48 -50
  602. data/vendor/local/share/doc/groonga/ja/html/reference/command.html +56 -54
  603. data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +17 -19
  604. data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +43 -45
  605. data/vendor/local/share/doc/groonga/ja/html/reference/command/request_id.html +22 -24
  606. data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +93 -95
  607. data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +35 -37
  608. data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +43 -45
  609. data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +23 -25
  610. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +39 -41
  611. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +62 -64
  612. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +24 -26
  613. data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +38 -40
  614. data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +37 -39
  615. data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +24 -26
  616. data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +32 -34
  617. data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +22 -24
  618. data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +33 -35
  619. data/vendor/local/share/doc/groonga/ja/html/reference/commands/lock_clear.html +48 -46
  620. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +23 -25
  621. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +24 -26
  622. data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +26 -28
  623. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_count.html +314 -0
  624. data/vendor/local/share/doc/groonga/ja/html/reference/commands/logical_range_filter.html +250 -0
  625. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +80 -81
  626. data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalizer_list.html +46 -48
  627. data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_register.html +188 -0
  628. data/vendor/local/share/doc/groonga/ja/html/reference/commands/plugin_unregister.html +190 -0
  629. data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +38 -40
  630. data/vendor/local/share/doc/groonga/ja/html/reference/commands/range_filter.html +37 -39
  631. data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +57 -47
  632. data/vendor/local/share/doc/groonga/ja/html/reference/commands/request_cancel.html +71 -73
  633. data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +53 -55
  634. data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +53 -55
  635. data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +394 -396
  636. data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +37 -39
  637. data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +38 -40
  638. data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +78 -80
  639. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +123 -125
  640. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +49 -51
  641. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +39 -41
  642. data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_tokenize.html +61 -63
  643. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +89 -91
  644. data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenizer_list.html +46 -48
  645. data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +51 -53
  646. data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +19 -21
  647. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grndb.html +35 -37
  648. data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +21 -23
  649. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +26 -28
  650. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +61 -63
  651. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +17 -19
  652. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +17 -19
  653. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +42 -44
  654. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +34 -36
  655. data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +126 -90
  656. data/vendor/local/share/doc/groonga/ja/html/reference/function.html +42 -44
  657. data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +63 -65
  658. data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +44 -46
  659. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +94 -96
  660. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +55 -57
  661. data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +45 -47
  662. data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_full.html +66 -68
  663. data/vendor/local/share/doc/groonga/ja/html/reference/functions/highlight_html.html +55 -57
  664. data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +53 -55
  665. data/vendor/local/share/doc/groonga/ja/html/reference/functions/in_values.html +135 -44
  666. data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +40 -42
  667. data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +70 -72
  668. data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +43 -45
  669. data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +53 -55
  670. data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +56 -62
  671. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +36 -38
  672. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +229 -171
  673. data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +381 -322
  674. data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +34 -36
  675. data/vendor/local/share/doc/groonga/ja/html/reference/log.html +38 -40
  676. data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +38 -40
  677. data/vendor/local/share/doc/groonga/ja/html/reference/operations.html +28 -30
  678. data/vendor/local/share/doc/groonga/ja/html/reference/operations/geolocation_search.html +32 -34
  679. data/vendor/local/share/doc/groonga/ja/html/reference/output.html +28 -30
  680. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +17 -19
  681. data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +39 -41
  682. data/vendor/local/share/doc/groonga/ja/html/reference/regular_expression.html +878 -0
  683. data/vendor/local/share/doc/groonga/ja/html/reference/scorer.html +442 -0
  684. data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_at_most.html +154 -0
  685. data/vendor/local/share/doc/groonga/ja/html/reference/scorers/scorer_tf_idf.html +287 -0
  686. data/vendor/local/share/doc/groonga/ja/html/reference/scoring_note.html +115 -0
  687. data/vendor/local/share/doc/groonga/ja/html/reference/suggest.html +45 -47
  688. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/completion.html +48 -50
  689. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/correction.html +40 -42
  690. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/introduction.html +38 -40
  691. data/vendor/local/share/doc/groonga/ja/html/reference/suggest/suggestion.html +40 -42
  692. data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +42 -44
  693. data/vendor/local/share/doc/groonga/ja/html/reference/token_filters.html +37 -39
  694. data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +1300 -34
  695. data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +57 -59
  696. data/vendor/local/share/doc/groonga/ja/html/reference/types.html +38 -40
  697. data/vendor/local/share/doc/groonga/ja/html/search.html +11 -11
  698. data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
  699. data/vendor/local/share/doc/groonga/ja/html/server.html +23 -24
  700. data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +28 -30
  701. data/vendor/local/share/doc/groonga/ja/html/server/http.html +42 -44
  702. data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +62 -64
  703. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +30 -32
  704. data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +29 -31
  705. data/vendor/local/share/doc/groonga/ja/html/server/memcached.html +138 -0
  706. data/vendor/local/share/doc/groonga/ja/html/server/package.html +35 -37
  707. data/vendor/local/share/doc/groonga/ja/html/spec.html +22 -24
  708. data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +207 -128
  709. data/vendor/local/share/doc/groonga/ja/html/spec/search.html +17 -19
  710. data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +17 -19
  711. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +18 -20
  712. data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +18 -20
  713. data/vendor/local/share/doc/groonga/ja/html/tutorial.html +21 -25
  714. data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +17 -19
  715. data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +30 -32
  716. data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +17 -19
  717. data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +17 -19
  718. data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +17 -19
  719. data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +23 -25
  720. data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +47 -49
  721. data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +27 -125
  722. data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +18 -20
  723. data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +20 -22
  724. data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +31 -33
  725. data/vendor/local/share/license/mruby/README.md +2 -2
  726. data/vendor/local/share/man/ja/man1/groonga.1 +6205 -2251
  727. data/vendor/local/share/man/man1/groonga.1 +7210 -3029
  728. metadata +75 -11
  729. data/doc/text/news.textile +0 -1217
  730. data/vendor/local/share/doc/groonga/en/html/_static/jquery-1.11.1.js +0 -10308
  731. data/vendor/local/share/doc/groonga/en/html/_static/underscore-1.3.1.js +0 -999
  732. data/vendor/local/share/doc/groonga/ja/html/_static/jquery-1.11.1.js +0 -10308
  733. data/vendor/local/share/doc/groonga/ja/html/_static/underscore-1.3.1.js +0 -999
Binary file
@@ -27,7 +27,7 @@ if test $# -eq 0; then
27
27
  show_usage
28
28
  fi
29
29
 
30
- prefix=/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86
30
+ prefix=/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86
31
31
  exec_prefix=${prefix}
32
32
  is_set_exec_prefix=no
33
33
 
Binary file
@@ -1,6 +1,6 @@
1
1
  # encoding = utf-8
2
2
  # log-level = 1
3
- # address = 0.0.0.0
3
+ # bind-address = 0.0.0.0
4
4
  # port = 10041
5
5
  # server-id = groonga.example.com
6
6
  # max-threads = 2
@@ -15,7 +15,7 @@ http {
15
15
  keepalive_timeout 65;
16
16
 
17
17
  # The default groonga database path.
18
- groonga_database /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/var/lib/groonga/db/db;
18
+ groonga_database /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/var/lib/groonga/db/db;
19
19
 
20
20
  # Create a groonga database automatically if the groonga database doesn't
21
21
  # exist.
@@ -45,7 +45,7 @@ http {
45
45
  }
46
46
 
47
47
  location / {
48
- root /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/share/groonga/html/admin;
48
+ root /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/share/groonga/html/admin;
49
49
  index index.html;
50
50
  }
51
51
 
@@ -19,6 +19,7 @@
19
19
  #define GROONGA_H
20
20
 
21
21
  #include "groonga/groonga.h"
22
+ #include "groonga/obj.h"
22
23
  #include "groonga/ii.h"
23
24
  #include "groonga/expr.h"
24
25
  #include "groonga/output.h"
@@ -101,6 +101,8 @@ GRN_API grn_rc grn_expr_snip_add_conditions(grn_ctx *ctx,
101
101
  const char **closetags,
102
102
  unsigned int *closetag_lens);
103
103
 
104
+ GRN_API unsigned int grn_expr_estimate_size(grn_ctx *ctx, grn_obj *expr);
105
+
104
106
  #ifdef __cplusplus
105
107
  }
106
108
  #endif
@@ -121,6 +121,7 @@ typedef enum {
121
121
  GRN_TOKEN_FILTER_ERROR = -73,
122
122
  GRN_COMMAND_ERROR = -74,
123
123
  GRN_PLUGIN_ERROR = -75,
124
+ GRN_SCORER_ERROR = -76
124
125
  } grn_rc;
125
126
 
126
127
  GRN_API grn_rc grn_init(void);
@@ -181,7 +182,8 @@ typedef enum {
181
182
  GRN_CONTENT_TSV,
182
183
  GRN_CONTENT_JSON,
183
184
  GRN_CONTENT_XML,
184
- GRN_CONTENT_MSGPACK
185
+ GRN_CONTENT_MSGPACK,
186
+ GRN_CONTENT_GROONGA_COMMAND_LIST
185
187
  } grn_content_type;
186
188
 
187
189
  typedef struct _grn_obj grn_obj;
@@ -431,6 +433,7 @@ GRN_API grn_rc grn_db_recover(grn_ctx *ctx, grn_obj *db);
431
433
  GRN_API grn_rc grn_ctx_use(grn_ctx *ctx, grn_obj *db);
432
434
  GRN_API grn_obj *grn_ctx_db(grn_ctx *ctx);
433
435
  GRN_API grn_obj *grn_ctx_get(grn_ctx *ctx, const char *name, int name_size);
436
+ GRN_API grn_rc grn_ctx_get_all_tables(grn_ctx *ctx, grn_obj *tables_buffer);
434
437
 
435
438
  typedef enum {
436
439
  GRN_DB_VOID = 0,
@@ -468,7 +471,9 @@ GRN_API grn_obj *grn_type_create(grn_ctx *ctx, const char *name, unsigned int na
468
471
  grn_obj_flags flags, unsigned int size);
469
472
 
470
473
  GRN_API grn_rc grn_plugin_register(grn_ctx *ctx, const char *name);
474
+ GRN_API grn_rc grn_plugin_unregister(grn_ctx *ctx, const char *name);
471
475
  GRN_API grn_rc grn_plugin_register_by_path(grn_ctx *ctx, const char *path);
476
+ GRN_API grn_rc grn_plugin_unregister_by_path(grn_ctx *ctx, const char *path);
472
477
  GRN_API const char *grn_plugin_get_system_plugins_dir(void);
473
478
  GRN_API const char *grn_plugin_get_suffix(void);
474
479
 
@@ -487,7 +492,8 @@ typedef enum {
487
492
  GRN_PROC_FUNCTION,
488
493
  GRN_PROC_HOOK,
489
494
  GRN_PROC_NORMALIZER,
490
- GRN_PROC_TOKEN_FILTER
495
+ GRN_PROC_TOKEN_FILTER,
496
+ GRN_PROC_SCORER
491
497
  } grn_proc_type;
492
498
 
493
499
  GRN_API grn_obj *grn_proc_create(grn_ctx *ctx,
@@ -707,7 +713,8 @@ typedef enum {
707
713
  GRN_OP_TABLE_SORT,
708
714
  GRN_OP_TABLE_GROUP,
709
715
  GRN_OP_JSON_PUT,
710
- GRN_OP_GET_MEMBER
716
+ GRN_OP_GET_MEMBER,
717
+ GRN_OP_REGEXP
711
718
  } grn_operator;
712
719
 
713
720
  GRN_API const char *grn_operator_to_string(grn_operator op);
@@ -720,6 +727,12 @@ GRN_API grn_bool grn_operator_exec_less_equal(grn_ctx *ctx,
720
727
  grn_obj *x, grn_obj *y);
721
728
  GRN_API grn_bool grn_operator_exec_greater_equal(grn_ctx *ctx,
722
729
  grn_obj *x, grn_obj *y);
730
+ GRN_API grn_bool grn_operator_exec_match(grn_ctx *ctx,
731
+ grn_obj *target, grn_obj *sub_text);
732
+ GRN_API grn_bool grn_operator_exec_prefix(grn_ctx *ctx,
733
+ grn_obj *target, grn_obj *prefix);
734
+ GRN_API grn_bool grn_operator_exec_regexp(grn_ctx *ctx,
735
+ grn_obj *target, grn_obj *pattern);
723
736
 
724
737
  struct _grn_table_group_result {
725
738
  grn_obj *table;
@@ -834,8 +847,6 @@ GRN_API grn_obj *grn_obj_get_element_info(grn_ctx *ctx, grn_obj *obj, grn_id id,
834
847
  GRN_API grn_rc grn_obj_set_element_info(grn_ctx *ctx, grn_obj *obj, grn_id id,
835
848
  grn_info_type type, grn_obj *value);
836
849
 
837
- GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj);
838
-
839
850
  GRN_API grn_obj *grn_obj_get_value(grn_ctx *ctx, grn_obj *obj, grn_id id, grn_obj *value);
840
851
  GRN_API int grn_obj_get_values(grn_ctx *ctx, grn_obj *obj, grn_id offset, void **values);
841
852
 
@@ -910,6 +921,9 @@ struct _grn_search_optarg {
910
921
  int vector_size;
911
922
  grn_obj *proc;
912
923
  int max_size;
924
+ grn_obj *scorer;
925
+ grn_obj *scorer_args_expr;
926
+ unsigned int scorer_args_expr_offset;
913
927
  };
914
928
 
915
929
  GRN_API grn_rc grn_obj_search(grn_ctx *ctx, grn_obj *obj, grn_obj *query,
@@ -975,9 +989,22 @@ GRN_API grn_rc grn_obj_delete_hook(grn_ctx *ctx, grn_obj *obj, grn_hook_entry en
975
989
 
976
990
  GRN_API grn_obj *grn_obj_open(grn_ctx *ctx, unsigned char type, grn_obj_flags flags, grn_id domain);
977
991
 
992
+ /* Deprecated since 5.0.1. Use grn_column_find_indexes() instead. */
978
993
  GRN_API int grn_column_index(grn_ctx *ctx, grn_obj *column, grn_operator op,
979
994
  grn_obj **indexbuf, int buf_size, int *section);
980
995
 
996
+ /* @since 5.0.1. */
997
+ typedef struct _grn_index_datum {
998
+ grn_obj *index;
999
+ unsigned int section;
1000
+ } grn_index_datum;
1001
+
1002
+ /* @since 5.0.1. */
1003
+ GRN_API unsigned int grn_column_find_index_data(grn_ctx *ctx, grn_obj *column,
1004
+ grn_operator op,
1005
+ grn_index_datum *index_data,
1006
+ unsigned int n_index_data);
1007
+
981
1008
  GRN_API grn_rc grn_obj_delete_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, grn_bool removep);
982
1009
  GRN_API grn_rc grn_obj_path_by_id(grn_ctx *ctx, grn_obj *db, grn_id id, char *buffer);
983
1010
 
@@ -28,6 +28,13 @@ typedef struct _grn_ii grn_ii;
28
28
  typedef struct _grn_ii_buffer grn_ii_buffer;
29
29
 
30
30
  GRN_API unsigned int grn_ii_estimate_size(grn_ctx *ctx, grn_ii *ii, grn_id tid);
31
+ GRN_API unsigned int grn_ii_estimate_size_for_query(grn_ctx *ctx, grn_ii *ii,
32
+ const char *query,
33
+ unsigned int query_len,
34
+ grn_search_optarg *optarg);
35
+ GRN_API unsigned int grn_ii_estimate_size_for_lexicon_cursor(grn_ctx *ctx,
36
+ grn_ii *ii,
37
+ grn_table_cursor *lexicon_cursor);
31
38
 
32
39
  GRN_API grn_ii_buffer *grn_ii_buffer_open(grn_ctx *ctx, grn_ii *ii,
33
40
  long long unsigned int update_buffer_size);
@@ -0,0 +1,37 @@
1
+ /* -*- c-basic-offset: 2 -*- */
2
+ /*
3
+ Copyright(C) 2015 Brazil
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 as published by the Free Software Foundation; either
8
+ version 2.1 of the License, or (at your option) any later version.
9
+
10
+ This library is distributed in the hope that it will be useful,
11
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ Lesser General Public License for more details.
14
+
15
+ You should have received a copy of the GNU Lesser General Public
16
+ License along with this library; if not, write to the Free Software
17
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+ */
19
+ #ifndef GROONGA_OBJ_H
20
+ #define GROONGA_OBJ_H
21
+
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
26
+ GRN_API grn_bool grn_obj_is_builtin(grn_ctx *ctx, grn_obj *obj);
27
+ GRN_API grn_bool grn_obj_is_table(grn_ctx *ctx, grn_obj *obj);
28
+ GRN_API grn_bool grn_obj_is_proc(grn_ctx *ctx, grn_obj *obj);
29
+ GRN_API grn_bool grn_obj_is_function_proc(grn_ctx *ctx, grn_obj *obj);
30
+ GRN_API grn_bool grn_obj_is_selector_proc(grn_ctx *ctx, grn_obj *obj);
31
+ GRN_API grn_bool grn_obj_is_scorer_proc(grn_ctx *ctx, grn_obj *obj);
32
+
33
+ #ifdef __cplusplus
34
+ }
35
+ #endif
36
+
37
+ #endif /* GROONGA_OBJ_H */
@@ -0,0 +1,95 @@
1
+ /* -*- c-basic-offset: 2 -*- */
2
+ /*
3
+ Copyright(C) 2015 Brazil
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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
+ */
18
+ #ifndef GROONGA_SCORER_H
19
+ #define GROONGA_SCORER_H
20
+
21
+ #include <groonga/plugin.h>
22
+
23
+ #ifdef __cplusplus
24
+ extern "C" {
25
+ #endif /* __cplusplus */
26
+
27
+ typedef struct _grn_scorer_matched_record grn_scorer_matched_record;
28
+
29
+ GRN_API grn_obj *
30
+ grn_scorer_matched_record_get_table(grn_ctx *ctx,
31
+ grn_scorer_matched_record *record);
32
+ GRN_API grn_obj *
33
+ grn_scorer_matched_record_get_lexicon(grn_ctx *ctx,
34
+ grn_scorer_matched_record *record);
35
+ GRN_API grn_id
36
+ grn_scorer_matched_record_get_id(grn_ctx *ctx,
37
+ grn_scorer_matched_record *record);
38
+ GRN_API grn_obj *
39
+ grn_scorer_matched_record_get_terms(grn_ctx *ctx,
40
+ grn_scorer_matched_record *record);
41
+ GRN_API grn_obj *
42
+ grn_scorer_matched_record_get_term_weights(grn_ctx *ctx,
43
+ grn_scorer_matched_record *record);
44
+ GRN_API unsigned int
45
+ grn_scorer_matched_record_get_total_term_weights(grn_ctx *ctx,
46
+ grn_scorer_matched_record *record);
47
+ GRN_API long long unsigned int
48
+ grn_scorer_matched_record_get_n_documents(grn_ctx *ctx,
49
+ grn_scorer_matched_record *record);
50
+ GRN_API unsigned int
51
+ grn_scorer_matched_record_get_n_occurrences(grn_ctx *ctx,
52
+ grn_scorer_matched_record *record);
53
+ GRN_API long long unsigned int
54
+ grn_scorer_matched_record_get_n_candidates(grn_ctx *ctx,
55
+ grn_scorer_matched_record *record);
56
+ GRN_API unsigned int
57
+ grn_scorer_matched_record_get_n_tokens(grn_ctx *ctx,
58
+ grn_scorer_matched_record *record);
59
+ GRN_API int
60
+ grn_scorer_matched_record_get_weight(grn_ctx *ctx,
61
+ grn_scorer_matched_record *record);
62
+ GRN_API grn_obj *
63
+ grn_scorer_matched_record_get_arg(grn_ctx *ctx,
64
+ grn_scorer_matched_record *record,
65
+ unsigned int i);
66
+ GRN_API unsigned int
67
+ grn_scorer_matched_record_get_n_args(grn_ctx *ctx,
68
+ grn_scorer_matched_record *record);
69
+
70
+
71
+
72
+ typedef double grn_scorer_score_func(grn_ctx *ctx,
73
+ grn_scorer_matched_record *record);
74
+
75
+ /*
76
+ grn_scorer_register() registers a plugin to the database which is
77
+ associated with `ctx'. `plugin_name_ptr' and `plugin_name_length' specify the
78
+ plugin name. Alphabetic letters ('A'-'Z' and 'a'-'z'), digits ('0'-'9') and
79
+ an underscore ('_') are capable characters.
80
+
81
+ `score' is called for scoring matched records one by one.
82
+
83
+ grn_scorer_register() returns GRN_SUCCESS on success, an error
84
+ code on failure.
85
+ */
86
+ GRN_PLUGIN_EXPORT grn_rc grn_scorer_register(grn_ctx *ctx,
87
+ const char *plugin_name_ptr,
88
+ int plugin_name_length,
89
+ grn_scorer_score_func *score);
90
+
91
+ #ifdef __cplusplus
92
+ } /* extern "C" */
93
+ #endif /* __cplusplus */
94
+
95
+ #endif /* GROONGA_SCORER_H */
@@ -17,7 +17,7 @@ old_library='tsv.a'
17
17
  inherited_linker_flags=''
18
18
 
19
19
  # Libraries that this one depends upon.
20
- dependency_libs=' -L/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32'
20
+ dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32'
21
21
 
22
22
  # Names of additional weak libraries provided by this library
23
23
  weak_library_names=''
@@ -38,4 +38,4 @@ dlopen=''
38
38
  dlpreopen=''
39
39
 
40
40
  # Directory that this library needs to be installed in:
41
- libdir='/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/query_expanders'
41
+ libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/query_expanders'
@@ -17,7 +17,7 @@ old_library='eval.a'
17
17
  inherited_linker_flags=''
18
18
 
19
19
  # Libraries that this one depends upon.
20
- dependency_libs=' -L/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
20
+ dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
21
21
 
22
22
  # Names of additional weak libraries provided by this library
23
23
  weak_library_names=''
@@ -38,4 +38,4 @@ dlopen=''
38
38
  dlpreopen=''
39
39
 
40
40
  # Directory that this library needs to be installed in:
41
- libdir='/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
41
+ libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
@@ -17,7 +17,7 @@ old_library='load.a'
17
17
  inherited_linker_flags=''
18
18
 
19
19
  # Libraries that this one depends upon.
20
- dependency_libs=' -L/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
20
+ dependency_libs=' -L/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libgroonga.la /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libonig.la -llz4 -lz -lws2_32 /home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/libmsgpack.la'
21
21
 
22
22
  # Names of additional weak libraries provided by this library
23
23
  weak_library_names=''
@@ -38,4 +38,4 @@ dlopen=''
38
38
  dlpreopen=''
39
39
 
40
40
  # Directory that this library needs to be installed in:
41
- libdir='/home/kenhys/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
41
+ libdir='/home/myokoym/work/groonga/groonga.clean/packages/windows/dist-x86/lib/groonga/plugins/ruby'
@@ -17,10 +17,10 @@ module Groonga
17
17
  filter = input[:filter]
18
18
 
19
19
  total = 0
20
- enumerator.each do |table, shard_key, shard_range, cover_type|
20
+ enumerator.each do |table, shard_key, shard_range|
21
21
  total += count_n_records(table, filter,
22
22
  shard_key, shard_range,
23
- enumerator.target_range, cover_type)
23
+ enumerator.target_range)
24
24
  end
25
25
  writer.write(total)
26
26
  end
@@ -28,7 +28,10 @@ module Groonga
28
28
  private
29
29
  def count_n_records(table, filter,
30
30
  shard_key, shard_range,
31
- target_range, cover_type)
31
+ target_range)
32
+ cover_type = target_range.cover_type(shard_range)
33
+ return 0 if cover_type == :none
34
+
32
35
  if cover_type == :all
33
36
  if filter.nil?
34
37
  return table.size
@@ -2,6 +2,8 @@ module Groonga
2
2
  module Sharding
3
3
  class LogicalEnumerator
4
4
  attr_reader :target_range
5
+ attr_reader :logical_table
6
+ attr_reader :shard_key_name
5
7
  def initialize(command_name, input)
6
8
  @command_name = command_name
7
9
  @input = input
@@ -11,7 +13,9 @@ module Groonga
11
13
  def each
12
14
  prefix = "#{@logical_table}_"
13
15
  context = Context.instance
14
- context.database.each_table(:prefix => prefix) do |table|
16
+ context.database.each_table(:prefix => prefix,
17
+ :order_by => :key,
18
+ :order => :ascending) do |table|
15
19
  shard_range_raw = table.name[prefix.size..-1]
16
20
 
17
21
  next unless /\A(\d{4})(\d{2})(\d{2})\z/ =~ shard_range_raw
@@ -26,10 +30,7 @@ module Groonga
26
30
  raise InvalidArgument, message
27
31
  end
28
32
 
29
- cover_type = @target_range.cover_type(shard_range)
30
- next if cover_type == :none
31
-
32
- yield(table, shard_key, shard_range, cover_type)
33
+ yield(table, shard_key, shard_range)
33
34
  end
34
35
  end
35
36
 
@@ -17,32 +17,436 @@ module Groonga
17
17
  ])
18
18
 
19
19
  def run_body(input)
20
- enumerator = LogicalEnumerator.new("logical_range_filter", input)
21
- filter = input[:filter]
22
- offset = input[:offset] || 0
23
- limit = input[:limit] || 10
24
20
  output_columns = input[:output_columns] || "_key, *"
25
21
 
26
- result_sets = []
27
- enumerator.each do |table, shard_key, shard_range, cover_type|
28
- # TODO: result_sets << result_set
29
- end
30
- if result_sets.empty?
31
- n_elements = 0
32
- else
22
+ context = ExecuteContext.new(input)
23
+ begin
24
+ executor = Executor.new(context)
25
+ executor.execute
26
+
27
+ result_sets = context.result_sets
33
28
  n_elements = 1 # for columns
34
29
  result_sets.each do |result_set|
35
30
  n_elements += result_set.size
36
31
  end
32
+
33
+ writer.array("RESULTSET", n_elements) do
34
+ first_result_set = result_sets.first
35
+ if first_result_set
36
+ writer.write_table_columns(first_result_set, output_columns)
37
+ end
38
+ result_sets.each do |result_set|
39
+ writer.write_table_records(result_set, output_columns)
40
+ end
41
+ end
42
+ ensure
43
+ context.close
44
+ end
45
+ end
46
+
47
+ class ExecuteContext
48
+ attr_reader :enumerator
49
+ attr_reader :order
50
+ attr_reader :filter
51
+ attr_reader :offset
52
+ attr_reader :limit
53
+ attr_accessor :current_offset
54
+ attr_accessor :current_limit
55
+ attr_reader :result_sets
56
+ attr_reader :unsorted_result_sets
57
+ attr_reader :threshold
58
+ def initialize(input)
59
+ @input = input
60
+ @enumerator = LogicalEnumerator.new("logical_range_filter", @input)
61
+ @order = parse_order(@input, :order)
62
+ @filter = @input[:filter]
63
+ @offset = (@input[:offset] || 0).to_i
64
+ @limit = (@input[:limit] || 10).to_i
65
+
66
+ @current_offset = 0
67
+ @current_limit = @limit
68
+
69
+ @result_sets = []
70
+ @unsorted_result_sets = []
71
+
72
+ @threshold = compute_threshold
37
73
  end
38
- writer.array("RESULTSET", n_elements) do
39
- first_result_set = result_sets.first
40
- if first_result_set
41
- writer.write_table_columns(first_result_set, output_columns)
74
+
75
+ def close
76
+ @unsorted_result_sets.each do |result_set|
77
+ result_set.close if result_set.temporary?
42
78
  end
43
- result_sets.each do |result_set|
44
- writer.write_table_records(result_set, output_columns)
79
+ @result_sets.each do |result_set|
80
+ result_set.close if result_set.temporary?
81
+ end
82
+ end
83
+
84
+ private
85
+ def parse_order(input, name)
86
+ order = input[name]
87
+ return :ascending if order.nil?
88
+
89
+ case order
90
+ when "ascending"
91
+ :ascending
92
+ when "descending"
93
+ :descending
94
+ else
95
+ message =
96
+ "[logical_range_filter] #{name} must be " +
97
+ "\"ascending\" or \"descending\": <#{order}>"
98
+ raise InvalidArgument, message
99
+ end
100
+ end
101
+
102
+ def compute_threshold
103
+ threshold_env = ENV["GRN_LOGICAL_RANGE_FILTER_THRESHOLD"]
104
+ default_threshold = 0.000058 # 15000 / 259200000.0
105
+ (threshold_env || default_threshold).to_f
106
+ end
107
+ end
108
+
109
+ class Executor
110
+ def initialize(context)
111
+ @context = context
112
+ end
113
+
114
+ def execute
115
+ first_table = nil
116
+ enumerator = @context.enumerator
117
+ enumerator.each do |table, shard_key, shard_range|
118
+ first_table ||= table
119
+ next if table.empty?
120
+
121
+ shard_executor = ShardExecutor.new(@context,
122
+ table, shard_key, shard_range)
123
+ shard_executor.execute
124
+ break if @context.current_limit == 0
125
+ end
126
+ if first_table.nil?
127
+ message =
128
+ "[logical_range_filter] no shard exists: " +
129
+ "logical_table: <#{enumerator.logical_table}>: " +
130
+ "shard_key: <#{enumerator.shard_key_name}>"
131
+ raise InvalidArgument, message
132
+ end
133
+ if @context.result_sets.empty?
134
+ result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
135
+ :key_type => first_table)
136
+ @context.result_sets << result_set
137
+ end
138
+ end
139
+ end
140
+
141
+ class ShardExecutor
142
+ def initialize(context, table, shard_key, shard_range)
143
+ @context = context
144
+ @table = table
145
+ @shard_key = shard_key
146
+ @shard_range = shard_range
147
+
148
+ @filter = @context.filter
149
+ @result_sets = @context.result_sets
150
+ @unsorted_result_sets = @context.unsorted_result_sets
151
+
152
+ @target_range = @context.enumerator.target_range
153
+
154
+ @cover_type = @target_range.cover_type(@shard_range)
155
+ end
156
+
157
+ def execute
158
+ return if @cover_type == :none
159
+
160
+ index_info = @shard_key.find_index(Operator::LESS)
161
+ if index_info
162
+ range_index = index_info.index
163
+ range_index = nil unless use_range_index?(range_index)
164
+ else
165
+ range_index = nil
166
+ end
167
+
168
+ case @cover_type
169
+ when :all
170
+ filter_shard_all(range_index)
171
+ when :partial_min
172
+ if range_index
173
+ filter_by_range(range_index,
174
+ @target_range.min, @target_range.min_border,
175
+ nil, nil)
176
+ else
177
+ filter_table do |expression|
178
+ build_expression_partial_min(expression)
179
+ end
180
+ end
181
+ when :partial_max
182
+ if range_index
183
+ filter_by_range(range_index,
184
+ nil, nil,
185
+ @target_range.max, @target_range.max_border)
186
+ else
187
+ filter_table do |expression|
188
+ build_expression_partial_max(expression)
189
+ end
190
+ end
191
+ when :partial_min_and_max
192
+ if range_index
193
+ filter_by_range(range_index,
194
+ @target_range.min, @target_range.min_border,
195
+ @target_range.max, @target_range.max_border)
196
+ else
197
+ filter_table do |expression|
198
+ build_expression_partial_min_and_max(expression)
199
+ end
200
+ end
201
+ end
202
+ end
203
+
204
+ private
205
+ def build_expression_all(expression)
206
+ expression.parse(@filter)
207
+ end
208
+
209
+ def build_expression_partial_min(expression)
210
+ expression.append_object(@shard_key, Operator::PUSH, 1)
211
+ expression.append_operator(Operator::GET_VALUE, 1)
212
+ expression.append_constant(@target_range.min, Operator::PUSH, 1)
213
+ if @target_range.min_border == :include
214
+ expression.append_operator(Operator::GREATER_EQUAL, 2)
215
+ else
216
+ expression.append_operator(Operator::GREATER, 2)
217
+ end
218
+ if @filter
219
+ expression.parse(@filter)
220
+ expression.append_operator(Operator::AND, 2)
221
+ end
222
+ end
223
+
224
+ def build_expression_partial_max(expression)
225
+ expression.append_object(@shard_key, Operator::PUSH, 1)
226
+ expression.append_operator(Operator::GET_VALUE, 1)
227
+ expression.append_constant(@target_range.max, Operator::PUSH, 1)
228
+ if @target_range.max_border == :include
229
+ expression.append_operator(Operator::LESS_EQUAL, 2)
230
+ else
231
+ expression.append_operator(Operator::LESS, 2)
232
+ end
233
+ if @filter
234
+ expression.parse(@filter)
235
+ expression.append_operator(Operator::AND, 2)
236
+ end
237
+ end
238
+
239
+ def build_expression_partial_min_and_max(expression)
240
+ between = Groonga::Context.instance["between"]
241
+ expression.append_object(between, Operator::PUSH, 1)
242
+ expression.append_object(@shard_key, Operator::PUSH, 1)
243
+ expression.append_operator(Operator::GET_VALUE, 1)
244
+ expression.append_constant(@target_range.min, Operator::PUSH, 1)
245
+ expression.append_constant(@target_range.min_border,
246
+ Operator::PUSH, 1)
247
+ expression.append_constant(@target_range.max, Operator::PUSH, 1)
248
+ expression.append_constant(@target_range.max_border,
249
+ Operator::PUSH, 1)
250
+ expression.append_operator(Operator::CALL, 5)
251
+ if @filter
252
+ expression.parse(@filter)
253
+ expression.append_operator(Operator::AND, 2)
254
+ end
255
+ end
256
+
257
+ def use_range_index?(range_index)
258
+ return false unless ENV["GRN_LOGICAL_RANGE_FILTER_ENABLED"] == "yes"
259
+
260
+ required_n_records = @context.current_offset + @context.current_limit
261
+ max_n_records = @table.size
262
+ if max_n_records <= required_n_records
263
+ return false
264
+ end
265
+
266
+ threshold = @context.threshold
267
+ if threshold <= 0
268
+ return false
269
+ end
270
+
271
+ estimated_n_records = 0
272
+ case @cover_type
273
+ when :all
274
+ if @filter
275
+ create_expression(@table) do |expression|
276
+ build_expression_all(expression)
277
+ estimated_n_records = expression.estimate_size
278
+ end
279
+ else
280
+ estimated_n_records = max_n_records
281
+ end
282
+ when :partial_min
283
+ create_expression(@table) do |expression|
284
+ build_expression_partial_min(expression)
285
+ estimated_n_records = expression.estimate_size
286
+ end
287
+ when :partial_max
288
+ create_expression(@table) do |expression|
289
+ build_expression_partial_max(expression)
290
+ estimated_n_records = expression.estimate_size
291
+ end
292
+ when :partial_min_and_max
293
+ create_expression(@table) do |expression|
294
+ build_expression_partial_min_and_max(expression)
295
+ estimated_n_records = expression.estimate_size
296
+ end
297
+ end
298
+
299
+ if estimated_n_records <= required_n_records
300
+ return false
301
+ end
302
+
303
+ hit_ratio = estimated_n_records / max_n_records.to_f
304
+ hit_ratio >= threshold
305
+ end
306
+
307
+ def filter_shard_all(range_index)
308
+ if @filter.nil?
309
+ if @table.size <= @context.current_offset
310
+ @context.current_offset -= @table.size
311
+ return
312
+ end
313
+ if range_index
314
+ filter_by_range(range_index,
315
+ nil, nil,
316
+ nil, nil)
317
+ else
318
+ sort_result_set(@table)
319
+ end
320
+ else
321
+ if range_index
322
+ filter_by_range(range_index,
323
+ nil, nil,
324
+ nil, nil)
325
+ else
326
+ filter_table do |expression|
327
+ build_expression_all(expression)
328
+ end
329
+ end
330
+ end
331
+ end
332
+
333
+ def create_expression(table)
334
+ expression = Expression.create(table)
335
+ begin
336
+ yield(expression)
337
+ ensure
338
+ expression.close
339
+ end
340
+ end
341
+
342
+ def filter_by_range(range_index,
343
+ min, min_border, max, max_border)
344
+ lexicon = range_index.domain
345
+ data_table = range_index.range
346
+ flags = build_range_search_flags(min_border, max_border)
347
+
348
+ result_set = HashTable.create(:flags => ObjectFlags::WITH_SUBREC,
349
+ :key_type => data_table)
350
+ n_matched_records = 0
351
+ begin
352
+ TableCursor.open(lexicon,
353
+ :min => min,
354
+ :max => max,
355
+ :flags => flags) do |table_cursor|
356
+ options = {
357
+ :offset => @context.current_offset,
358
+ :limit => @context.current_limit,
359
+ }
360
+ if @filter
361
+ create_expression(data_table) do |expression|
362
+ expression.parse(@filter)
363
+ options[:expression] = expression
364
+ IndexCursor.open(table_cursor, range_index) do |index_cursor|
365
+ n_matched_records = index_cursor.select(result_set, options)
366
+ end
367
+ end
368
+ else
369
+ IndexCursor.open(table_cursor, range_index) do |index_cursor|
370
+ n_matched_records = index_cursor.select(result_set, options)
371
+ end
372
+ end
373
+ end
374
+ rescue
375
+ result_set.close
376
+ raise
377
+ end
378
+
379
+ if n_matched_records <= @context.current_offset
380
+ @context.current_offset -= n_matched_records
381
+ result_set.close
382
+ return
383
+ end
384
+
385
+ if @context.current_offset > 0
386
+ @context.current_offset = 0
387
+ end
388
+ @context.current_limit -= result_set.size
389
+ @result_sets << result_set
390
+ end
391
+
392
+ def build_range_search_flags(min_border, max_border)
393
+ flags = TableCursorFlags::BY_KEY
394
+ case @context.order
395
+ when :ascending
396
+ flags |= TableCursorFlags::ASCENDING
397
+ when :descending
398
+ flags |= TableCursorFlags::DESCENDING
399
+ end
400
+ case min_border
401
+ when :include
402
+ flags |= TableCursorFlags::GE
403
+ when :exclude
404
+ flags |= TableCursorFlags::GT
405
+ end
406
+ case max_border
407
+ when :include
408
+ flags |= TableCursorFlags::LE
409
+ when :exclude
410
+ flags |= TableCursorFlags::LT
411
+ end
412
+ flags
413
+ end
414
+
415
+ def filter_table
416
+ create_expression(@table) do |expression|
417
+ yield(expression)
418
+ result_set = @table.select(expression)
419
+ sort_result_set(result_set)
420
+ end
421
+ end
422
+
423
+ def sort_result_set(result_set)
424
+ if result_set.empty?
425
+ result_set.close if result_set.temporary?
426
+ return
427
+ end
428
+
429
+ if result_set.size <= @context.current_offset
430
+ @context.current_offset -= result_set.size
431
+ result_set.close if result_set.temporary?
432
+ return
433
+ end
434
+
435
+ @unsorted_result_sets << result_set if result_set.temporary?
436
+ sort_keys = [
437
+ {
438
+ :key => @context.enumerator.shard_key_name,
439
+ :order => @context.order,
440
+ },
441
+ ]
442
+ sorted_result_set = result_set.sort(sort_keys,
443
+ :offset => @context.current_offset,
444
+ :limit => @context.current_limit)
445
+ @result_sets << sorted_result_set
446
+ if @context.current_offset > 0
447
+ @context.current_offset = 0
45
448
  end
449
+ @context.current_limit -= sorted_result_set.size
46
450
  end
47
451
  end
48
452
  end