rroonga 4.0.0-x64-mingw32 → 4.0.1-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +6 -0
- data/doc/text/news.textile +26 -0
- data/ext/groonga/rb-grn-column.c +42 -2
- data/ext/groonga/rb-grn-index-column.c +57 -159
- data/ext/groonga/rb-grn-object.c +7 -0
- data/ext/groonga/rb-grn-table.c +19 -3
- data/ext/groonga/rb-grn-utils.c +4 -1
- data/ext/groonga/rb-grn-variable-size-column.c +405 -5
- data/ext/groonga/rb-grn.h +18 -1
- data/lib/1.9/groonga.so +0 -0
- data/lib/2.0/groonga.so +0 -0
- data/lib/2.1/groonga.so +0 -0
- data/lib/groonga/dumper.rb +46 -22
- data/lib/groonga/expression-builder.rb +2 -4
- data/lib/groonga/schema.rb +16 -234
- data/rroonga-build.rb +3 -3
- data/rroonga.gemspec +1 -1
- data/test/test-array.rb +6 -5
- data/test/test-column.rb +0 -14
- data/test/test-database.rb +6 -5
- data/test/test-double-array-trie.rb +6 -5
- data/test/test-expression.rb +2 -2
- data/test/test-hash.rb +6 -5
- data/test/test-index-column.rb +163 -33
- data/test/test-patricia-trie.rb +6 -5
- data/test/test-schema-dumper.rb +39 -7
- data/test/test-table-dumper.rb +46 -1
- data/test/test-table-select-weight.rb +12 -0
- data/test/test-variable-size-column.rb +87 -3
- data/vendor/local/bin/groonga-benchmark.exe +0 -0
- data/vendor/local/bin/groonga.exe +0 -0
- data/vendor/local/bin/libgroonga-0.dll +0 -0
- data/vendor/local/bin/libmecab-1.dll +0 -0
- data/vendor/local/bin/libmsgpack-3.dll +0 -0
- data/vendor/local/bin/libmsgpackc-2.dll +0 -0
- data/vendor/local/bin/mecab.exe +0 -0
- data/vendor/local/include/groonga/groonga.h +6 -1
- data/vendor/local/lib/groonga/plugins/query_expanders/tsv.a +0 -0
- data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll +0 -0
- data/vendor/local/lib/groonga/plugins/query_expanders/tsv.dll.a +0 -0
- data/vendor/local/lib/groonga/plugins/suggest/suggest.a +0 -0
- data/vendor/local/lib/groonga/plugins/suggest/suggest.dll +0 -0
- data/vendor/local/lib/groonga/plugins/suggest/suggest.dll.a +0 -0
- data/vendor/local/lib/groonga/plugins/table/table.a +0 -0
- data/vendor/local/lib/groonga/plugins/table/table.dll +0 -0
- data/vendor/local/lib/groonga/plugins/table/table.dll.a +0 -0
- data/vendor/local/lib/groonga/plugins/tokenizers/mecab.a +0 -0
- data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll +0 -0
- data/vendor/local/lib/groonga/plugins/tokenizers/mecab.dll.a +0 -0
- data/vendor/local/lib/libgroonga.a +0 -0
- data/vendor/local/lib/libgroonga.dll.a +0 -0
- data/vendor/local/lib/libmecab.a +0 -0
- data/vendor/local/lib/libmecab.dll.a +0 -0
- data/vendor/local/lib/libmsgpack.a +0 -0
- data/vendor/local/lib/libmsgpack.dll.a +0 -0
- data/vendor/local/lib/libmsgpackc.a +0 -0
- data/vendor/local/lib/libmsgpackc.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/groonga.pc +2 -2
- data/vendor/local/libexec/mecab/mecab-cost-train.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-dict-gen.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-dict-index.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-system-eval.exe +0 -0
- data/vendor/local/libexec/mecab/mecab-test-gen.exe +0 -0
- data/vendor/local/share/doc/groonga/en/html/.buildinfo +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/install/centos.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/debian.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/fedora.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/mac_os_x.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/others.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/solaris.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/ubuntu.txt +3 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/install/windows.txt +9 -9
- data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +41 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference.txt +3 -2
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/column.txt +25 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/columns/vector.txt +333 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/cache_limit.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_create.txt +1 -2
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/column_rename.txt +37 -17
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/delete.txt +4 -5
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/normalize.txt +1 -2
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/select.txt +99 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/table_create.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/commands/truncate.txt +1 -2
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-suggest-httpd.txt +128 -4
- data/vendor/local/share/doc/groonga/en/html/_sources/reference/executables/groonga-suggest-learner.txt +11 -1
- data/vendor/local/share/doc/groonga/en/html/_static/basic.css +1 -1
- data/vendor/local/share/doc/groonga/en/html/_static/doctools.js +1 -1
- data/vendor/local/share/doc/groonga/en/html/_static/searchtools.js +1 -1
- data/vendor/local/share/doc/groonga/en/html/_static/websupport.js +1 -1
- data/vendor/local/share/doc/groonga/en/html/characteristic.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/community.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/cooperation.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/release.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/repository.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/report.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/development.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/development/travis-ci.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/genindex.html +11 -11
- data/vendor/local/share/doc/groonga/en/html/geolocation_search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/index.html +68 -67
- data/vendor/local/share/doc/groonga/en/html/install.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/install/centos.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/debian.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/fedora.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/mac_os_x.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/others.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/solaris.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/ubuntu.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/install/windows.html +14 -14
- data/vendor/local/share/doc/groonga/en/html/limitations.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news.html +247 -200
- data/vendor/local/share/doc/groonga/en/html/news/0.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.0.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/1.2.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news/senna.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/en/html/reference.html +69 -68
- data/vendor/local/share/doc/groonga/en/html/reference/api.html +38 -38
- data/vendor/local/share/doc/groonga/en/html/reference/api/global_configurations.html +24 -24
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_cache.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_column.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_command_version.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ctx.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_db.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_encoding.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_expr.html +24 -24
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_geo.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_hook.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_ii.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_index_cursor.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_info.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_match_escalation.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_obj.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_proc.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_search.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_table_cursor.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_type.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/api/grn_user_data.html +22 -22
- data/vendor/local/share/doc/groonga/en/html/reference/cast.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/reference/column.html +153 -0
- data/vendor/local/share/doc/groonga/en/html/reference/columns/vector.html +857 -0
- data/vendor/local/share/doc/groonga/en/html/reference/command.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/reference/command/command_version.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/command/output_format.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/command/return_code.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/cache_limit.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/reference/commands/check.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/clearlock.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/column_create.html +8 -9
- data/vendor/local/share/doc/groonga/en/html/reference/commands/column_list.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/column_remove.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/column_rename.html +47 -26
- data/vendor/local/share/doc/groonga/en/html/reference/commands/define_selector.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/defrag.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/delete.html +8 -9
- data/vendor/local/share/doc/groonga/en/html/reference/commands/dump.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/load.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/log_level.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/log_put.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/log_reopen.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/normalize.html +10 -10
- data/vendor/local/share/doc/groonga/en/html/reference/commands/quit.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/register.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_eval.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/ruby_load.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/select.html +193 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/shutdown.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/status.html +12 -12
- data/vendor/local/share/doc/groonga/en/html/reference/commands/suggest.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_create.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_list.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/table_remove.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/tokenize.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/commands/truncate.html +8 -9
- data/vendor/local/share/doc/groonga/en/html/reference/executables.html +12 -12
- data/vendor/local/share/doc/groonga/en/html/reference/executables/grnslap.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-benchmark.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-httpd.html +10 -10
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-server-http.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-create-dataset.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-httpd.html +165 -13
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga-suggest-learner.html +25 -8
- data/vendor/local/share/doc/groonga/en/html/reference/executables/groonga.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/reference/function.html +28 -28
- data/vendor/local/share/doc/groonga/en/html/reference/functions/between.html +40 -40
- data/vendor/local/share/doc/groonga/en/html/reference/functions/edit_distance.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_distance.html +50 -50
- data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_circle.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/reference/functions/geo_in_rectangle.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/reference/functions/html_untag.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/reference/functions/now.html +30 -30
- data/vendor/local/share/doc/groonga/en/html/reference/functions/query.html +46 -46
- data/vendor/local/share/doc/groonga/en/html/reference/functions/rand.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/reference/functions/snippet_html.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/reference/functions/sub_filter.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr.html +22 -22
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/query_syntax.html +62 -62
- data/vendor/local/share/doc/groonga/en/html/reference/grn_expr/script_syntax.html +140 -140
- data/vendor/local/share/doc/groonga/en/html/reference/indexing.html +24 -24
- data/vendor/local/share/doc/groonga/en/html/reference/log.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/reference/normalizers.html +31 -31
- data/vendor/local/share/doc/groonga/en/html/reference/output.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/reference/pseudo_column.html +22 -22
- data/vendor/local/share/doc/groonga/en/html/reference/query_expanders.html +18 -18
- data/vendor/local/share/doc/groonga/en/html/reference/query_expanders/tsv.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/reference/tables.html +13 -13
- data/vendor/local/share/doc/groonga/en/html/reference/tokenizers.html +17 -17
- data/vendor/local/share/doc/groonga/en/html/reference/tuning.html +38 -38
- data/vendor/local/share/doc/groonga/en/html/reference/types.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/searchindex.js +1 -1
- data/vendor/local/share/doc/groonga/en/html/server.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http/comparison.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/http/groonga-httpd.html +9 -9
- data/vendor/local/share/doc/groonga/en/html/server/http/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/server/package.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/spec.html +9 -9
- data/vendor/local/share/doc/groonga/en/html/spec/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/spec/search.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/troubleshooting/mmap_cannot_allocate_memory.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/data.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/drilldown.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/index.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/introduction.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/tutorial/lexicon.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/match_columns.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/micro_blog.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/network.html +12 -12
- data/vendor/local/share/doc/groonga/en/html/tutorial/patricia_trie.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/query_expansion.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/centos.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/debian.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/fedora.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/mac_os_x.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/others.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/solaris.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/ubuntu.txt +3 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/install/windows.txt +9 -9
- data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +41 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference.txt +3 -2
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/column.txt +25 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/columns/vector.txt +333 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/cache_limit.txt +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_create.txt +1 -2
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/column_rename.txt +37 -17
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/delete.txt +4 -5
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/normalize.txt +1 -2
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/select.txt +99 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/table_create.txt +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/commands/truncate.txt +1 -2
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-suggest-httpd.txt +128 -4
- data/vendor/local/share/doc/groonga/ja/html/_sources/reference/executables/groonga-suggest-learner.txt +11 -1
- data/vendor/local/share/doc/groonga/ja/html/_static/basic.css +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_static/doctools.js +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_static/searchtools.js +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_static/websupport.js +1 -1
- data/vendor/local/share/doc/groonga/ja/html/characteristic.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/community.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/cooperation.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/release.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/repository.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/development.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/development/travis-ci.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/genindex.html +11 -11
- data/vendor/local/share/doc/groonga/ja/html/geolocation_search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/index.html +67 -66
- data/vendor/local/share/doc/groonga/ja/html/install.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/install/centos.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/debian.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/fedora.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/mac_os_x.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/others.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/solaris.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/ubuntu.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/install/windows.html +14 -14
- data/vendor/local/share/doc/groonga/ja/html/limitations.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news.html +262 -200
- data/vendor/local/share/doc/groonga/ja/html/news/0.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.0.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/1.2.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news/senna.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/ja/html/reference.html +69 -68
- data/vendor/local/share/doc/groonga/ja/html/reference/api.html +35 -35
- data/vendor/local/share/doc/groonga/ja/html/reference/api/global_configurations.html +22 -22
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_cache.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_column.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_command_version.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ctx.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_db.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_encoding.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_expr.html +22 -22
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_geo.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_hook.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_ii.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_index_cursor.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_info.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_match_escalation.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_obj.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_proc.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_search.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_table_cursor.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_type.html +24 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/api/grn_user_data.html +20 -20
- data/vendor/local/share/doc/groonga/ja/html/reference/cast.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/column.html +150 -0
- data/vendor/local/share/doc/groonga/ja/html/reference/columns/vector.html +824 -0
- data/vendor/local/share/doc/groonga/ja/html/reference/command.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/command/command_version.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/command/output_format.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/command/return_code.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/cache_limit.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/check.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/clearlock.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_create.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_list.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_remove.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/column_rename.html +45 -24
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/define_selector.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/defrag.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/delete.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/dump.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/load.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_level.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_put.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/log_reopen.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/normalize.html +8 -7
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/quit.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/register.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_eval.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/ruby_load.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/select.html +174 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/shutdown.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/status.html +10 -10
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/suggest.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_create.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_list.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/table_remove.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/tokenize.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/commands/truncate.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/executables.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/grnslap.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-benchmark.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-httpd.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-server-http.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-create-dataset.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-httpd.html +167 -11
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga-suggest-learner.html +23 -6
- data/vendor/local/share/doc/groonga/ja/html/reference/executables/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/function.html +25 -25
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/between.html +38 -38
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/edit_distance.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_distance.html +48 -48
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_circle.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/geo_in_rectangle.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/html_untag.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/now.html +28 -28
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/query.html +44 -44
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/rand.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/snippet_html.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/reference/functions/sub_filter.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr.html +19 -19
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/query_syntax.html +60 -60
- data/vendor/local/share/doc/groonga/ja/html/reference/grn_expr/script_syntax.html +138 -138
- data/vendor/local/share/doc/groonga/ja/html/reference/indexing.html +21 -21
- data/vendor/local/share/doc/groonga/ja/html/reference/log.html +23 -23
- data/vendor/local/share/doc/groonga/ja/html/reference/normalizers.html +28 -28
- data/vendor/local/share/doc/groonga/ja/html/reference/output.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/reference/pseudo_column.html +19 -19
- data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders.html +15 -15
- data/vendor/local/share/doc/groonga/ja/html/reference/query_expanders/tsv.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/reference/tables.html +10 -10
- data/vendor/local/share/doc/groonga/ja/html/reference/tokenizers.html +14 -14
- data/vendor/local/share/doc/groonga/ja/html/reference/tuning.html +35 -35
- data/vendor/local/share/doc/groonga/ja/html/reference/types.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/searchindex.js +1 -1
- data/vendor/local/share/doc/groonga/ja/html/server.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/comparison.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/groonga-httpd.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/http/groonga.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/server/package.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/spec.html +9 -9
- data/vendor/local/share/doc/groonga/ja/html/spec/gqtp.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/spec/search.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting/mmap_cannot_allocate_memory.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/data.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/drilldown.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/index.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/introduction.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/tutorial/lexicon.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/match_columns.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/micro_blog.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/network.html +12 -12
- data/vendor/local/share/doc/groonga/ja/html/tutorial/patricia_trie.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/query_expansion.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/search.html +5 -5
- data/vendor/local/share/man/ja/man1/groonga.1 +526 -73
- data/vendor/local/share/man/man1/groonga.1 +552 -80
- metadata +148 -139
data/ext/groonga/rb-grn-object.c
CHANGED
@@ -444,6 +444,13 @@ rb_grn_object_assign (VALUE klass, VALUE self, VALUE rb_context,
|
|
444
444
|
context, object);
|
445
445
|
rb_grn_index_column_bind(RB_GRN_INDEX_COLUMN(rb_grn_object),
|
446
446
|
context, object);
|
447
|
+
} else if (RVAL2CBOOL(rb_obj_is_kind_of(self, rb_cGrnVariableSizeColumn))) {
|
448
|
+
rb_grn_object = ALLOC(RbGrnVariableSizeColumn);
|
449
|
+
rb_grn_object_bind_common(klass, self, rb_context, rb_grn_object,
|
450
|
+
context, object);
|
451
|
+
rb_grn_variable_size_column_bind(RB_GRN_VARIABLE_SIZE_COLUMN(rb_grn_object),
|
452
|
+
context,
|
453
|
+
object);
|
447
454
|
} else if (RVAL2CBOOL(rb_obj_is_kind_of(self, rb_cGrnColumn))) {
|
448
455
|
rb_grn_object = ALLOC(RbGrnColumn);
|
449
456
|
rb_grn_object_bind_common(klass, self, rb_context, rb_grn_object,
|
data/ext/groonga/rb-grn-table.c
CHANGED
@@ -226,6 +226,11 @@ rb_grn_table_inspect (VALUE self)
|
|
226
226
|
*
|
227
227
|
* - +:scalar+ := スカラ値(単独の値)を格納する。
|
228
228
|
* - +:vector+ := 値の配列を格納する。
|
229
|
+
* @option options [Boolean] :with_weight (false)
|
230
|
+
* It specifies whether making the column weight vector column or not.
|
231
|
+
* Weight vector column can store weight for each element.
|
232
|
+
*
|
233
|
+
* You can't use this option for scalar column.
|
229
234
|
* @option options :compress
|
230
235
|
* 値の圧縮方法を指定する。省略した場合は、圧縮しない。
|
231
236
|
*
|
@@ -244,7 +249,7 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
|
|
244
249
|
unsigned name_size = 0;
|
245
250
|
grn_obj_flags flags = 0;
|
246
251
|
VALUE rb_name, rb_value_type;
|
247
|
-
VALUE options, rb_path, rb_persistent, rb_compress, rb_type;
|
252
|
+
VALUE options, rb_path, rb_persistent, rb_compress, rb_type, rb_with_weight;
|
248
253
|
VALUE columns;
|
249
254
|
VALUE rb_column;
|
250
255
|
|
@@ -262,6 +267,7 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
|
|
262
267
|
"path", &rb_path,
|
263
268
|
"persistent", &rb_persistent,
|
264
269
|
"type", &rb_type,
|
270
|
+
"with_weight", &rb_with_weight,
|
265
271
|
"compress", &rb_compress,
|
266
272
|
NULL);
|
267
273
|
|
@@ -294,6 +300,15 @@ rb_grn_table_define_column (int argc, VALUE *argv, VALUE self)
|
|
294
300
|
rb_grn_inspect(rb_type));
|
295
301
|
}
|
296
302
|
|
303
|
+
if (RVAL2CBOOL(rb_with_weight)) {
|
304
|
+
if (flags & GRN_OBJ_COLUMN_VECTOR) {
|
305
|
+
flags |= GRN_OBJ_WITH_WEIGHT;
|
306
|
+
} else {
|
307
|
+
rb_raise(rb_eArgError,
|
308
|
+
"can't use weight for scalar column");
|
309
|
+
}
|
310
|
+
}
|
311
|
+
|
297
312
|
if (NIL_P(rb_compress)) {
|
298
313
|
} else if (rb_grn_equal_option(rb_compress, "zlib")) {
|
299
314
|
flags |= GRN_OBJ_COMPRESS_ZLIB;
|
@@ -1268,7 +1283,8 @@ rb_grn_table_group (int argc, VALUE *argv, VALUE self)
|
|
1268
1283
|
grn_obj *table;
|
1269
1284
|
grn_table_sort_key *keys;
|
1270
1285
|
grn_table_group_result *results;
|
1271
|
-
int i, n_keys, n_results
|
1286
|
+
int i, n_keys, n_results;
|
1287
|
+
unsigned int max_n_sub_records = 0;
|
1272
1288
|
grn_rc rc;
|
1273
1289
|
VALUE rb_keys, rb_options, rb_max_n_sub_records;
|
1274
1290
|
VALUE *rb_group_keys;
|
@@ -1294,7 +1310,7 @@ rb_grn_table_group (int argc, VALUE *argv, VALUE self)
|
|
1294
1310
|
NULL);
|
1295
1311
|
|
1296
1312
|
if (!NIL_P(rb_max_n_sub_records))
|
1297
|
-
max_n_sub_records =
|
1313
|
+
max_n_sub_records = NUM2UINT(rb_max_n_sub_records);
|
1298
1314
|
|
1299
1315
|
keys = ALLOCA_N(grn_table_sort_key, n_keys);
|
1300
1316
|
for (i = 0; i < n_keys; i++) {
|
data/ext/groonga/rb-grn-utils.c
CHANGED
@@ -123,6 +123,10 @@ rb_grn_scan_options (VALUE options, ...)
|
|
123
123
|
rb_key = RB_GRN_INTERN(key);
|
124
124
|
rb_ary_push(available_keys, rb_key);
|
125
125
|
*value = rb_funcall(options, rb_intern("delete"), 1, rb_key);
|
126
|
+
if (NIL_P(*value)) {
|
127
|
+
rb_key = rb_str_new_cstr(key);
|
128
|
+
*value = rb_funcall(options, rb_intern("delete"), 1, rb_key);
|
129
|
+
}
|
126
130
|
|
127
131
|
key = va_arg(args, const char *);
|
128
132
|
}
|
@@ -652,7 +656,6 @@ rb_grn_vector_to_ruby_object (grn_ctx *context, grn_obj *vector)
|
|
652
656
|
grn_obj_reinit(context, &value, domain, 0);
|
653
657
|
grn_bulk_write(context, &value, _value, length);
|
654
658
|
rb_ary_push(array, GRNOBJ2RVAL(Qnil, context, &value, Qnil));
|
655
|
-
/* UINT2NUM(weight); */ /* TODO: How handle weight? */
|
656
659
|
}
|
657
660
|
GRN_OBJ_FIN(context, &value);
|
658
661
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- coding: utf-8; mode: C; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
2
2
|
/*
|
3
|
-
Copyright (C) 2009-
|
3
|
+
Copyright (C) 2009-2014 Kouhei Sutou <kou@clear-code.com>
|
4
4
|
|
5
5
|
This library is free software; you can redistribute it and/or
|
6
6
|
modify it under the terms of the GNU Lesser General Public
|
@@ -18,16 +18,411 @@
|
|
18
18
|
|
19
19
|
#include "rb-grn.h"
|
20
20
|
|
21
|
-
#define SELF(object) ((
|
21
|
+
#define SELF(object) ((RbGrnVariableSizeColumn *)DATA_PTR(object))
|
22
22
|
|
23
23
|
VALUE rb_cGrnVariableSizeColumn;
|
24
24
|
|
25
|
+
void
|
26
|
+
rb_grn_variable_size_column_bind (RbGrnVariableSizeColumn *rb_column,
|
27
|
+
grn_ctx *context, grn_obj *column)
|
28
|
+
{
|
29
|
+
RbGrnObject *rb_grn_object;
|
30
|
+
int column_type;
|
31
|
+
unsigned char value_type;
|
32
|
+
|
33
|
+
rb_grn_object = RB_GRN_OBJECT(rb_column);
|
34
|
+
rb_grn_column_bind(RB_GRN_COLUMN(rb_column), context, column);
|
35
|
+
|
36
|
+
rb_column->element_value = NULL;
|
37
|
+
column_type = (column->header.flags & GRN_OBJ_COLUMN_TYPE_MASK);
|
38
|
+
if (column_type != GRN_OBJ_COLUMN_VECTOR) {
|
39
|
+
return;
|
40
|
+
}
|
41
|
+
|
42
|
+
switch (rb_grn_object->range->header.type) {
|
43
|
+
case GRN_TABLE_HASH_KEY:
|
44
|
+
case GRN_TABLE_PAT_KEY:
|
45
|
+
case GRN_TABLE_DAT_KEY:
|
46
|
+
case GRN_TABLE_NO_KEY:
|
47
|
+
value_type = GRN_UVECTOR;
|
48
|
+
break;
|
49
|
+
default:
|
50
|
+
value_type = GRN_VECTOR;
|
51
|
+
break;
|
52
|
+
}
|
53
|
+
if (column->header.flags & GRN_OBJ_WITH_WEIGHT) {
|
54
|
+
rb_column->element_value = grn_obj_open(context, value_type, 0,
|
55
|
+
rb_grn_object->range_id);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
void
|
60
|
+
rb_grn_variable_size_column_finalizer (grn_ctx *context, grn_obj *grn_object,
|
61
|
+
RbGrnVariableSizeColumn *rb_column)
|
62
|
+
{
|
63
|
+
rb_grn_column_finalizer(context, grn_object,
|
64
|
+
RB_GRN_COLUMN(rb_column));
|
65
|
+
if (context && rb_column->element_value)
|
66
|
+
grn_obj_unlink(context, rb_column->element_value);
|
67
|
+
rb_column->element_value = NULL;
|
68
|
+
}
|
69
|
+
|
70
|
+
static void
|
71
|
+
rb_grn_variable_size_column_deconstruct (RbGrnVariableSizeColumn *rb_column,
|
72
|
+
grn_obj **column,
|
73
|
+
grn_ctx **context,
|
74
|
+
grn_id *domain_id,
|
75
|
+
grn_obj **domain,
|
76
|
+
grn_obj **value,
|
77
|
+
grn_obj **element_value,
|
78
|
+
grn_id *range_id,
|
79
|
+
grn_obj **range)
|
80
|
+
{
|
81
|
+
RbGrnColumn *rb_grn_column;
|
82
|
+
|
83
|
+
rb_grn_column = RB_GRN_COLUMN(rb_column);
|
84
|
+
rb_grn_column_deconstruct(rb_grn_column, column, context,
|
85
|
+
domain_id, domain, value,
|
86
|
+
range_id, range);
|
87
|
+
|
88
|
+
if (element_value)
|
89
|
+
*element_value = rb_column->element_value;
|
90
|
+
}
|
91
|
+
|
25
92
|
/*
|
26
93
|
* Document-class: Groonga::VariableSizeColumn < Groonga::Column
|
27
94
|
*
|
28
|
-
*
|
95
|
+
* A column for variable size data like text family types and vector
|
96
|
+
* column.
|
29
97
|
*/
|
30
98
|
|
99
|
+
/*
|
100
|
+
* It gets a value of variable size column value for the record that
|
101
|
+
* ID is _id_.
|
102
|
+
*
|
103
|
+
* @example Gets weight vector value
|
104
|
+
* Groonga::Schema.define do |schema|
|
105
|
+
* schema.create_table("Products",
|
106
|
+
* :type => :patricia_trie,
|
107
|
+
* :key_type => "ShortText") do |table|
|
108
|
+
* # This is weight vector.
|
109
|
+
* # ":with_weight => true" is important to store weight value.
|
110
|
+
* table.short_text("tags",
|
111
|
+
* :type => :vector,
|
112
|
+
* :with_weight => true)
|
113
|
+
* end
|
114
|
+
* end
|
115
|
+
*
|
116
|
+
* products = Groonga["Products"]
|
117
|
+
* rroonga = products.add("Rroonga")
|
118
|
+
* rroonga.tags = [
|
119
|
+
* {
|
120
|
+
* :value => "ruby",
|
121
|
+
* :weight => 100,
|
122
|
+
* },
|
123
|
+
* {
|
124
|
+
* :value => "groonga",
|
125
|
+
* :weight => 10,
|
126
|
+
* },
|
127
|
+
* ]
|
128
|
+
*
|
129
|
+
* p rroonga.tags
|
130
|
+
* # => [
|
131
|
+
* # {:value => "ruby", :weight => 100},
|
132
|
+
* # {:value => "groonga", :weight => 10}
|
133
|
+
* # ]
|
134
|
+
*
|
135
|
+
* @overload [](id)
|
136
|
+
* @param [Integer, Record] id The record ID.
|
137
|
+
* @return [Array<Hash<Symbol, String>>] An array of value if the column
|
138
|
+
* is a weight vector column.
|
139
|
+
* Each value is a Hash like the following form:
|
140
|
+
*
|
141
|
+
* <pre>
|
142
|
+
* {
|
143
|
+
* :value => [KEY],
|
144
|
+
* :weight => [WEIGHT],
|
145
|
+
* }
|
146
|
+
* </pre>
|
147
|
+
*
|
148
|
+
* @[KEY]@ is the key of the table that is specified as range on
|
149
|
+
* creating the weight vector.
|
150
|
+
*
|
151
|
+
* @[WEIGHT]@ is a positive integer.
|
152
|
+
*
|
153
|
+
* @return [::Object] See {Groonga::Object#[]} for columns except
|
154
|
+
* weight vector column.
|
155
|
+
*
|
156
|
+
* @since 4.0.1.
|
157
|
+
*/
|
158
|
+
static VALUE
|
159
|
+
rb_grn_variable_size_column_array_reference (VALUE self, VALUE rb_id)
|
160
|
+
{
|
161
|
+
grn_ctx *context = NULL;
|
162
|
+
grn_obj *column, *range;
|
163
|
+
grn_id id;
|
164
|
+
grn_obj *value;
|
165
|
+
VALUE rb_value;
|
166
|
+
unsigned int i, n;
|
167
|
+
|
168
|
+
rb_grn_variable_size_column_deconstruct(SELF(self), &column, &context,
|
169
|
+
NULL, NULL, &value, NULL,
|
170
|
+
NULL, &range);
|
171
|
+
|
172
|
+
if (!(column->header.flags & GRN_OBJ_WITH_WEIGHT)) {
|
173
|
+
return rb_call_super(1, &rb_id);
|
174
|
+
}
|
175
|
+
|
176
|
+
id = RVAL2GRNID(rb_id, context, range, self);
|
177
|
+
|
178
|
+
grn_obj_reinit(context, value,
|
179
|
+
value->header.domain,
|
180
|
+
value->header.flags | GRN_OBJ_VECTOR);
|
181
|
+
grn_obj_get_value(context, column, id, value);
|
182
|
+
rb_grn_context_check(context, self);
|
183
|
+
|
184
|
+
n = grn_vector_size(context, value);
|
185
|
+
rb_value = rb_ary_new2(n);
|
186
|
+
for (i = 0; i < n; i++) {
|
187
|
+
const char *element_value;
|
188
|
+
unsigned int element_value_length;
|
189
|
+
unsigned int weight = 0;
|
190
|
+
grn_id domain;
|
191
|
+
VALUE rb_element;
|
192
|
+
|
193
|
+
element_value_length = grn_vector_get_element(context,
|
194
|
+
value,
|
195
|
+
i,
|
196
|
+
&element_value,
|
197
|
+
&weight,
|
198
|
+
&domain);
|
199
|
+
rb_element = rb_hash_new();
|
200
|
+
rb_hash_aset(rb_element,
|
201
|
+
ID2SYM(rb_intern("value")),
|
202
|
+
rb_str_new(element_value, element_value_length));
|
203
|
+
rb_hash_aset(rb_element,
|
204
|
+
ID2SYM(rb_intern("weight")),
|
205
|
+
UINT2NUM(weight));
|
206
|
+
|
207
|
+
rb_ary_push(rb_value, rb_element);
|
208
|
+
}
|
209
|
+
|
210
|
+
return rb_value;
|
211
|
+
}
|
212
|
+
|
213
|
+
typedef struct {
|
214
|
+
grn_ctx *context;
|
215
|
+
grn_obj *vector;
|
216
|
+
grn_obj *element_value;
|
217
|
+
} HashElementToVectorElementData;
|
218
|
+
|
219
|
+
static int
|
220
|
+
hash_element_to_vector_element(VALUE key, VALUE value, VALUE user_data)
|
221
|
+
{
|
222
|
+
HashElementToVectorElementData *data =
|
223
|
+
(HashElementToVectorElementData *)user_data;
|
224
|
+
unsigned int weight;
|
225
|
+
|
226
|
+
GRN_BULK_REWIND(data->element_value);
|
227
|
+
RVAL2GRNBULK(key, data->context, data->element_value);
|
228
|
+
|
229
|
+
weight = NUM2UINT(value);
|
230
|
+
grn_vector_add_element(data->context, data->vector,
|
231
|
+
GRN_BULK_HEAD(data->element_value),
|
232
|
+
GRN_BULK_VSIZE(data->element_value),
|
233
|
+
weight,
|
234
|
+
data->element_value->header.domain);
|
235
|
+
|
236
|
+
return ST_CONTINUE;
|
237
|
+
}
|
238
|
+
|
239
|
+
/*
|
240
|
+
* It updates a value of variable size column value for the record
|
241
|
+
* that ID is _id_.
|
242
|
+
*
|
243
|
+
* Weight vector column is a special variable size column. This
|
244
|
+
* description describes only weight vector column. Other variable
|
245
|
+
* size column works what you think.
|
246
|
+
*
|
247
|
+
* @example Use weight vector as matrix search result weight
|
248
|
+
* Groonga::Schema.define do |schema|
|
249
|
+
* schema.create_table("Products",
|
250
|
+
* :type => :patricia_trie,
|
251
|
+
* :key_type => "ShortText") do |table|
|
252
|
+
* # This is weight vector.
|
253
|
+
* # ":with_weight => true" is important for matrix search result weight.
|
254
|
+
* table.short_text("tags",
|
255
|
+
* :type => :vector,
|
256
|
+
* :with_weight => true)
|
257
|
+
* end
|
258
|
+
*
|
259
|
+
* schema.create_table("Tags",
|
260
|
+
* :type => :hash,
|
261
|
+
* :key_type => "ShortText") do |table|
|
262
|
+
* # This is inverted index. It also needs ":with_weight => true".
|
263
|
+
* table.index("Products.tags", :with_weight => true)
|
264
|
+
* end
|
265
|
+
* end
|
266
|
+
*
|
267
|
+
* products = Groonga["Products"]
|
268
|
+
* groonga = products.add("Groonga")
|
269
|
+
* groonga.tags = [
|
270
|
+
* {
|
271
|
+
* :value => "groonga",
|
272
|
+
* :weight => 100,
|
273
|
+
* },
|
274
|
+
* ]
|
275
|
+
* rroonga = products.add("Rroonga")
|
276
|
+
* rroonga.tags = [
|
277
|
+
* {
|
278
|
+
* :value => "ruby",
|
279
|
+
* :weight => 100,
|
280
|
+
* },
|
281
|
+
* {
|
282
|
+
* :value => "groonga",
|
283
|
+
* :weight => 10,
|
284
|
+
* },
|
285
|
+
* ]
|
286
|
+
*
|
287
|
+
* result = products.select do |record|
|
288
|
+
* # Search by "groonga"
|
289
|
+
* record.match("groonga") do |match_target|
|
290
|
+
* match_target.tags
|
291
|
+
* end
|
292
|
+
* end
|
293
|
+
*
|
294
|
+
* result.each do |record|
|
295
|
+
* p [record.key.key, record.score]
|
296
|
+
* end
|
297
|
+
* # Matches all records with weight.
|
298
|
+
* # => ["Groonga", 101]
|
299
|
+
* # ["Rroonga", 11]
|
300
|
+
*
|
301
|
+
* # Increases score for "ruby" 10 times
|
302
|
+
* products.select(# The previous search result. Required.
|
303
|
+
* :result => result,
|
304
|
+
* # It just adds score to existing records in the result. Required.
|
305
|
+
* :operator => Groonga::Operator::ADJUST) do |record|
|
306
|
+
* record.match("ruby") do |target|
|
307
|
+
* target.tags * 10 # 10 times
|
308
|
+
* end
|
309
|
+
* end
|
310
|
+
*
|
311
|
+
* result.each do |record|
|
312
|
+
* p [record.key.key, record.score]
|
313
|
+
* end
|
314
|
+
* # Weight is used for increasing score.
|
315
|
+
* # => ["Groonga", 101] <- Not changed.
|
316
|
+
* # ["Rroonga", 1021] <- 1021 (= 101 * 10 + 1) increased.
|
317
|
+
*
|
318
|
+
* @overload []=(id, elements)
|
319
|
+
* This description is for weight vector column.
|
320
|
+
*
|
321
|
+
* @param [Integer, Record] id The record ID.
|
322
|
+
* @param [Array<Hash<Symbol, String>>] elements An array of values
|
323
|
+
* for weight vector.
|
324
|
+
* Each value is a Hash like the following form:
|
325
|
+
*
|
326
|
+
* <pre>
|
327
|
+
* {
|
328
|
+
* :value => [KEY],
|
329
|
+
* :weight => [WEIGHT],
|
330
|
+
* }
|
331
|
+
* </pre>
|
332
|
+
*
|
333
|
+
* @[KEY]@ must be the same type of the key of the table that is
|
334
|
+
* specified as range on creating the weight vector.
|
335
|
+
*
|
336
|
+
* @[WEIGHT]@ must be an positive integer. Note that search
|
337
|
+
* becomes @weight + 1@. It means that You want to get 10 as
|
338
|
+
* score, you should set 9 as weight.
|
339
|
+
*
|
340
|
+
* @overload []=(id, value)
|
341
|
+
* This description is for variable size columns except weight
|
342
|
+
* vector column.
|
343
|
+
*
|
344
|
+
* @param [Integer, Record] id The record ID.
|
345
|
+
* @param [::Object] value A new value.
|
346
|
+
* @see Groonga::Object#[]=
|
347
|
+
*
|
348
|
+
* @since 4.0.1
|
349
|
+
*/
|
350
|
+
static VALUE
|
351
|
+
rb_grn_variable_size_column_array_set (VALUE self, VALUE rb_id, VALUE rb_value)
|
352
|
+
{
|
353
|
+
grn_ctx *context = NULL;
|
354
|
+
grn_obj *column, *range;
|
355
|
+
grn_rc rc;
|
356
|
+
grn_id id;
|
357
|
+
grn_obj *value, *element_value;
|
358
|
+
int flags = GRN_OBJ_SET;
|
359
|
+
|
360
|
+
rb_grn_variable_size_column_deconstruct(SELF(self), &column, &context,
|
361
|
+
NULL, NULL, &value, &element_value,
|
362
|
+
NULL, &range);
|
363
|
+
|
364
|
+
if (!(column->header.flags & GRN_OBJ_WITH_WEIGHT)) {
|
365
|
+
VALUE args[2];
|
366
|
+
args[0] = rb_id;
|
367
|
+
args[1] = rb_value;
|
368
|
+
return rb_call_super(2, args);
|
369
|
+
}
|
370
|
+
|
371
|
+
id = RVAL2GRNID(rb_id, context, range, self);
|
372
|
+
|
373
|
+
grn_obj_reinit(context, value,
|
374
|
+
value->header.domain,
|
375
|
+
value->header.flags | GRN_OBJ_VECTOR);
|
376
|
+
if (RVAL2CBOOL(rb_obj_is_kind_of(rb_value, rb_cArray))) {
|
377
|
+
int i, n;
|
378
|
+
n = RARRAY_LEN(rb_value);
|
379
|
+
for (i = 0; i < n; i++) {
|
380
|
+
unsigned int weight = 0;
|
381
|
+
VALUE rb_element_value, rb_weight;
|
382
|
+
|
383
|
+
rb_grn_scan_options(RARRAY_PTR(rb_value)[i],
|
384
|
+
"value", &rb_element_value,
|
385
|
+
"weight", &rb_weight,
|
386
|
+
NULL);
|
387
|
+
|
388
|
+
if (!NIL_P(rb_weight)) {
|
389
|
+
weight = NUM2UINT(rb_weight);
|
390
|
+
}
|
391
|
+
|
392
|
+
GRN_BULK_REWIND(element_value);
|
393
|
+
if (!NIL_P(rb_element_value)) {
|
394
|
+
RVAL2GRNBULK(rb_element_value, context, element_value);
|
395
|
+
}
|
396
|
+
|
397
|
+
grn_vector_add_element(context, value,
|
398
|
+
GRN_BULK_HEAD(element_value),
|
399
|
+
GRN_BULK_VSIZE(element_value),
|
400
|
+
weight,
|
401
|
+
element_value->header.domain);
|
402
|
+
}
|
403
|
+
} else if (RVAL2CBOOL(rb_obj_is_kind_of(rb_value, rb_cHash))) {
|
404
|
+
HashElementToVectorElementData data;
|
405
|
+
data.context = context;
|
406
|
+
data.vector = value;
|
407
|
+
data.element_value = element_value;
|
408
|
+
rb_hash_foreach(rb_value, hash_element_to_vector_element, (VALUE)&data);
|
409
|
+
} else {
|
410
|
+
rb_raise(rb_eArgError,
|
411
|
+
"<%s>: "
|
412
|
+
"weight vector value must be an array of index value or "
|
413
|
+
"a hash that key is vector value and value is vector weight: "
|
414
|
+
"<%s>",
|
415
|
+
rb_grn_inspect(self),
|
416
|
+
rb_grn_inspect(rb_value));
|
417
|
+
}
|
418
|
+
|
419
|
+
rc = grn_obj_set_value(context, column, id, value, flags);
|
420
|
+
rb_grn_context_check(context, self);
|
421
|
+
rb_grn_rc_check(rc, self);
|
422
|
+
|
423
|
+
return rb_value;
|
424
|
+
}
|
425
|
+
|
31
426
|
/*
|
32
427
|
* Returns whether the column is compressed or not. If
|
33
428
|
* @type@ is specified, it returns whether the column is
|
@@ -42,7 +437,7 @@ VALUE rb_cGrnVariableSizeColumn;
|
|
42
437
|
static VALUE
|
43
438
|
rb_grn_variable_size_column_compressed_p (int argc, VALUE *argv, VALUE self)
|
44
439
|
{
|
45
|
-
|
440
|
+
RbGrnVariableSizeColumn *rb_grn_column;
|
46
441
|
grn_ctx *context = NULL;
|
47
442
|
grn_obj *column;
|
48
443
|
grn_obj_flags flags;
|
@@ -112,7 +507,7 @@ rb_grn_variable_size_column_compressed_p (int argc, VALUE *argv, VALUE self)
|
|
112
507
|
static VALUE
|
113
508
|
rb_grn_variable_size_column_defrag (int argc, VALUE *argv, VALUE self)
|
114
509
|
{
|
115
|
-
|
510
|
+
RbGrnVariableSizeColumn *rb_grn_column;
|
116
511
|
grn_ctx *context = NULL;
|
117
512
|
grn_obj *column;
|
118
513
|
int n_segments;
|
@@ -143,6 +538,11 @@ rb_grn_init_variable_size_column (VALUE mGrn)
|
|
143
538
|
rb_cGrnVariableSizeColumn =
|
144
539
|
rb_define_class_under(mGrn, "VariableSizeColumn", rb_cGrnColumn);
|
145
540
|
|
541
|
+
rb_define_method(rb_cGrnVariableSizeColumn, "[]",
|
542
|
+
rb_grn_variable_size_column_array_reference, 1);
|
543
|
+
rb_define_method(rb_cGrnVariableSizeColumn, "[]=",
|
544
|
+
rb_grn_variable_size_column_array_set, 2);
|
545
|
+
|
146
546
|
rb_define_method(rb_cGrnVariableSizeColumn, "compressed?",
|
147
547
|
rb_grn_variable_size_column_compressed_p, -1);
|
148
548
|
rb_define_method(rb_cGrnVariableSizeColumn, "defrag",
|