rroonga 1.2.5-x86-mingw32 → 1.2.7-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +30 -0
- data/Rakefile +24 -285
- data/ext/groonga/extconf.rb +4 -2
- data/ext/groonga/rb-grn-array.c +5 -4
- data/ext/groonga/rb-grn-context.c +7 -22
- data/ext/groonga/rb-grn-database.c +42 -1
- data/ext/groonga/rb-grn-index-column.c +5 -0
- data/ext/groonga/rb-grn-object.c +58 -26
- data/ext/groonga/rb-grn-patricia-trie.c +2 -1
- data/ext/groonga/rb-grn-record.c +11 -1
- data/ext/groonga/rb-grn-snippet.c +44 -1
- data/ext/groonga/rb-grn-table-key-support.c +21 -10
- data/ext/groonga/rb-grn-utils.c +3 -1
- data/ext/groonga/rb-grn-variable-size-column.c +47 -1
- data/ext/groonga/rb-grn.h +4 -1
- data/extconf.rb +1 -0
- data/lib/1.8/groonga.so +0 -0
- data/lib/1.9/groonga.so +0 -0
- data/lib/groonga/dumper.rb +3 -3
- data/lib/groonga/pagination.rb +1 -1
- data/lib/groonga/record.rb +10 -0
- data/rroonga-build.rb +1 -1
- data/test/test-accessor.rb +4 -0
- data/test/test-array.rb +9 -1
- data/test/test-database.rb +16 -0
- data/test/test-expression.rb +2 -0
- data/test/test-hash.rb +11 -2
- data/test/test-patricia-trie.rb +10 -1
- data/test/test-table-select.rb +31 -17
- data/test/test-type.rb +3 -3
- data/test/test-variable-size-column.rb +8 -1
- data/vendor/local/bin/grntest.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/mecab-config +2 -2
- data/vendor/local/bin/mecab.exe +0 -0
- data/vendor/local/include/groonga/groonga.h +20 -4
- 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/suggest/suggest.la +3 -3
- 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/groonga/plugins/tokenizers/mecab.la +3 -3
- data/vendor/local/lib/libgroonga.a +0 -0
- data/vendor/local/lib/libgroonga.dll.a +0 -0
- data/vendor/local/lib/libgroonga.la +2 -2
- data/vendor/local/lib/libmecab.a +0 -0
- data/vendor/local/lib/libmecab.dll.a +0 -0
- data/vendor/local/lib/libmecab.la +1 -1
- 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/commands/suggest.txt +207 -35
- data/vendor/local/share/doc/groonga/en/html/_sources/executables/grntest.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/executables/{http.txt → groonga-http.txt} +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/executables/groonga-suggest-create-dataset.txt +50 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/index.txt +1 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/install.txt +14 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/log.txt +214 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/news/1.0.x.txt +1 -1
- data/vendor/local/share/doc/groonga/en/html/_sources/news.txt +35 -3
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest/completion.txt +195 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest/correction.txt +148 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest/introduction.txt +94 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest/suggestion.txt +115 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest/tutorial.txt +8 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/suggest.txt +22 -0
- data/vendor/local/share/doc/groonga/en/html/_sources/tutorial/tutorial01.txt +2 -1
- data/vendor/local/share/doc/groonga/en/html/_static/groonga.css +1 -0
- data/vendor/local/share/doc/groonga/en/html/characteristic.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/command_version.html +30 -30
- data/vendor/local/share/doc/groonga/en/html/commands/cache_limit.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/check.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/clearlock.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/column_create.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/column_list.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/column_remove.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/define_selector.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/commands/defrag.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/delete.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/dump.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/commands/load.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/commands/log_level.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/commands/log_put.html +36 -36
- data/vendor/local/share/doc/groonga/en/html/commands/log_reopen.html +38 -38
- data/vendor/local/share/doc/groonga/en/html/commands/quit.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/commands/select.html +38 -38
- data/vendor/local/share/doc/groonga/en/html/commands/shutdown.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/commands/status.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/suggest.html +258 -72
- data/vendor/local/share/doc/groonga/en/html/commands/table_create.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/table_list.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/table_remove.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands/view_add.html +34 -34
- data/vendor/local/share/doc/groonga/en/html/commands.html +42 -42
- data/vendor/local/share/doc/groonga/en/html/community.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/contribution/development/com.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/development/document.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/development/query.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/development/test.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/development.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/c-api.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation/i18n.html +7 -7
- data/vendor/local/share/doc/groonga/en/html/contribution/documentation.html +8 -8
- data/vendor/local/share/doc/groonga/en/html/contribution/report.html +12 -12
- data/vendor/local/share/doc/groonga/en/html/contribution.html +10 -10
- data/vendor/local/share/doc/groonga/en/html/executables/grnslap.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/executables/grntest.html +49 -49
- data/vendor/local/share/doc/groonga/en/html/executables/{http.html → groonga-http.html} +34 -34
- data/vendor/local/share/doc/groonga/en/html/executables/groonga-suggest-create-dataset.html +186 -0
- data/vendor/local/share/doc/groonga/en/html/executables/groonga.html +37 -37
- data/vendor/local/share/doc/groonga/en/html/executables.html +22 -21
- data/vendor/local/share/doc/groonga/en/html/expr.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/functions/edit_distance.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/functions/geo_distance.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/functions/geo_in_circle.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/functions/geo_in_rectangle.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/functions/now.html +30 -30
- data/vendor/local/share/doc/groonga/en/html/functions/rand.html +32 -32
- data/vendor/local/share/doc/groonga/en/html/functions.html +23 -23
- data/vendor/local/share/doc/groonga/en/html/genindex.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/index.html +105 -74
- data/vendor/local/share/doc/groonga/en/html/install.html +22 -11
- data/vendor/local/share/doc/groonga/en/html/limitations.html +17 -17
- data/vendor/local/share/doc/groonga/en/html/log.html +345 -0
- 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 +6 -6
- data/vendor/local/share/doc/groonga/en/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/news.html +94 -57
- data/vendor/local/share/doc/groonga/en/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/en/html/pseudo_column.html +22 -22
- data/vendor/local/share/doc/groonga/en/html/reference.html +69 -68
- 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/spec/search.html +28 -28
- data/vendor/local/share/doc/groonga/en/html/spec.html +15 -15
- data/vendor/local/share/doc/groonga/en/html/suggest/completion.html +357 -0
- data/vendor/local/share/doc/groonga/en/html/suggest/correction.html +286 -0
- data/vendor/local/share/doc/groonga/en/html/suggest/introduction.html +243 -0
- data/vendor/local/share/doc/groonga/en/html/suggest/suggestion.html +265 -0
- data/vendor/local/share/doc/groonga/en/html/suggest/tutorial.html +134 -0
- data/vendor/local/share/doc/groonga/en/html/suggest.html +166 -0
- data/vendor/local/share/doc/groonga/en/html/troubleshooting/different_results_with_the_same_keyword.html +26 -26
- data/vendor/local/share/doc/groonga/en/html/troubleshooting.html +19 -19
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial01.html +6 -6
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial02.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial03.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial04.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial05.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial06.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial07.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial08.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial09.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/tutorial/tutorial10.html +10 -10
- data/vendor/local/share/doc/groonga/en/html/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/en/html/type.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/.buildinfo +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/commands/suggest.txt +207 -35
- data/vendor/local/share/doc/groonga/ja/html/_sources/executables/grntest.txt +1 -1
- data/vendor/local/share/doc/groonga/{source/executables/http.txt → ja/html/_sources/executables/groonga-http.txt} +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/executables/groonga-suggest-create-dataset.txt +50 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/index.txt +1 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/install.txt +14 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/log.txt +214 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/news/1.0.x.txt +1 -1
- data/vendor/local/share/doc/groonga/ja/html/_sources/news.txt +35 -3
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest/completion.txt +195 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest/correction.txt +148 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest/introduction.txt +94 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest/suggestion.txt +115 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest/tutorial.txt +8 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/suggest.txt +22 -0
- data/vendor/local/share/doc/groonga/ja/html/_sources/tutorial/tutorial01.txt +2 -1
- data/vendor/local/share/doc/groonga/ja/html/_static/groonga.css +1 -0
- data/vendor/local/share/doc/groonga/ja/html/characteristic.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/command_version.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/commands/cache_limit.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/check.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/clearlock.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/column_create.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/column_list.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/column_remove.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/define_selector.html +36 -36
- data/vendor/local/share/doc/groonga/ja/html/commands/defrag.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/delete.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/dump.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/commands/load.html +36 -36
- data/vendor/local/share/doc/groonga/ja/html/commands/log_level.html +36 -36
- data/vendor/local/share/doc/groonga/ja/html/commands/log_put.html +36 -36
- data/vendor/local/share/doc/groonga/ja/html/commands/log_reopen.html +38 -38
- data/vendor/local/share/doc/groonga/ja/html/commands/quit.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/commands/select.html +38 -38
- data/vendor/local/share/doc/groonga/ja/html/commands/shutdown.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/commands/status.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/suggest.html +237 -72
- data/vendor/local/share/doc/groonga/ja/html/commands/table_create.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/table_list.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/table_remove.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands/view_add.html +34 -34
- data/vendor/local/share/doc/groonga/ja/html/commands.html +42 -42
- data/vendor/local/share/doc/groonga/ja/html/community.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/com.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/document.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/query.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/development/test.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/development.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/c-api.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation/i18n.html +7 -7
- data/vendor/local/share/doc/groonga/ja/html/contribution/documentation.html +8 -8
- data/vendor/local/share/doc/groonga/ja/html/contribution/report.html +12 -12
- data/vendor/local/share/doc/groonga/ja/html/contribution.html +10 -10
- data/vendor/local/share/doc/groonga/ja/html/executables/grnslap.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/executables/grntest.html +49 -49
- data/vendor/local/share/doc/groonga/ja/html/executables/{http.html → groonga-http.html} +34 -34
- data/vendor/local/share/doc/groonga/ja/html/executables/groonga-suggest-create-dataset.html +187 -0
- data/vendor/local/share/doc/groonga/ja/html/executables/groonga.html +37 -37
- data/vendor/local/share/doc/groonga/ja/html/executables.html +22 -21
- data/vendor/local/share/doc/groonga/ja/html/expr.html +26 -26
- data/vendor/local/share/doc/groonga/ja/html/functions/edit_distance.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/functions/geo_distance.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/functions/geo_in_circle.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/functions/geo_in_rectangle.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/functions/now.html +30 -30
- data/vendor/local/share/doc/groonga/ja/html/functions/rand.html +32 -32
- data/vendor/local/share/doc/groonga/ja/html/functions.html +23 -23
- data/vendor/local/share/doc/groonga/ja/html/genindex.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/index.html +105 -74
- data/vendor/local/share/doc/groonga/ja/html/install.html +24 -11
- data/vendor/local/share/doc/groonga/ja/html/limitations.html +17 -17
- data/vendor/local/share/doc/groonga/ja/html/log.html +346 -0
- 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 +6 -6
- data/vendor/local/share/doc/groonga/ja/html/news/1.1.x.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/news.html +87 -55
- data/vendor/local/share/doc/groonga/ja/html/objects.inv +0 -0
- data/vendor/local/share/doc/groonga/ja/html/pseudo_column.html +22 -22
- data/vendor/local/share/doc/groonga/ja/html/reference.html +69 -68
- 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/spec/search.html +28 -28
- data/vendor/local/share/doc/groonga/ja/html/spec.html +15 -15
- data/vendor/local/share/doc/groonga/ja/html/suggest/completion.html +327 -0
- data/vendor/local/share/doc/groonga/ja/html/suggest/correction.html +254 -0
- data/vendor/local/share/doc/groonga/ja/html/suggest/introduction.html +225 -0
- data/vendor/local/share/doc/groonga/ja/html/suggest/suggestion.html +248 -0
- data/vendor/local/share/doc/groonga/ja/html/suggest/tutorial.html +135 -0
- data/vendor/local/share/doc/groonga/ja/html/suggest.html +166 -0
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting/different_results_with_the_same_keyword.html +26 -26
- data/vendor/local/share/doc/groonga/ja/html/troubleshooting.html +19 -19
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial01.html +6 -6
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial02.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial03.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial04.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial05.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial06.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial07.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial08.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial09.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/tutorial/tutorial10.html +10 -10
- data/vendor/local/share/doc/groonga/ja/html/tutorial.html +5 -5
- data/vendor/local/share/doc/groonga/ja/html/type.html +30 -30
- data/vendor/local/share/doc/groonga/source/commands/suggest.txt +207 -35
- data/vendor/local/share/doc/groonga/source/example/completion-1.log +5 -0
- data/vendor/local/share/doc/groonga/source/example/correction-1.log +5 -0
- data/vendor/local/share/doc/groonga/source/example/suggestion-1.log +5 -0
- data/vendor/local/share/doc/groonga/source/executables/grntest.txt +1 -1
- data/vendor/local/share/doc/groonga/{ja/html/_sources/executables/http.txt → source/executables/groonga-http.txt} +1 -1
- data/vendor/local/share/doc/groonga/source/executables/groonga-suggest-create-dataset.txt +50 -0
- data/vendor/local/share/doc/groonga/source/index.txt +1 -0
- data/vendor/local/share/doc/groonga/source/install.txt +14 -3
- data/vendor/local/share/doc/groonga/source/log.txt +214 -0
- data/vendor/local/share/doc/groonga/source/news/1.0.x.txt +1 -1
- data/vendor/local/share/doc/groonga/source/news.txt +35 -3
- data/vendor/local/share/doc/groonga/source/suggest/completion.txt +195 -0
- data/vendor/local/share/doc/groonga/source/suggest/correction.txt +148 -0
- data/vendor/local/share/doc/groonga/source/suggest/introduction.txt +94 -0
- data/vendor/local/share/doc/groonga/source/suggest/suggestion.txt +115 -0
- data/vendor/local/share/doc/groonga/source/suggest/tutorial.txt +8 -0
- data/vendor/local/share/doc/groonga/source/suggest.txt +22 -0
- data/vendor/local/share/doc/groonga/source/tutorial/tutorial01.txt +2 -1
- data/vendor/local/share/doc/groonga/source/update_execution_example.py +46 -20
- data/vendor/local/share/license/groonga/AUTHORS +17 -0
- data/vendor/local/share/license/groonga/COPYING +504 -0
- data/vendor/local/share/license/mecab/AUTHORS +1 -0
- data/vendor/local/share/license/mecab/BSD +29 -0
- data/vendor/local/share/license/mecab/COPYING +4 -0
- data/vendor/local/share/license/mecab/GPL +340 -0
- data/vendor/local/share/license/mecab/LGPL +504 -0
- data/vendor/local/share/license/naist-jdic/AUTHORS +2 -0
- data/vendor/local/share/license/naist-jdic/COPYING +31 -0
- data/vendor/local/share/man/ja/man1/groonga.1 +1050 -45
- data/vendor/local/share/man/man1/groonga.1 +1174 -48
- metadata +62 -9
@@ -0,0 +1,148 @@
|
|
1
|
+
.. -*- rst -*-
|
2
|
+
|
3
|
+
.. highlightlang:: none
|
4
|
+
|
5
|
+
.. groonga-command
|
6
|
+
.. % groonga-suggest-create-dataset /tmp/groonga-databases/correction query
|
7
|
+
.. database: correction
|
8
|
+
|
9
|
+
Correction
|
10
|
+
==========
|
11
|
+
|
12
|
+
This section describes about the following correction
|
13
|
+
features:
|
14
|
+
|
15
|
+
* How it works
|
16
|
+
* How to use
|
17
|
+
* How to learn
|
18
|
+
|
19
|
+
How it works
|
20
|
+
------------
|
21
|
+
|
22
|
+
The correction feature uses three searches to compute corrected
|
23
|
+
words:
|
24
|
+
|
25
|
+
1. Cooccurrence search against learned data.
|
26
|
+
2. Similar search against registered words. (optional)
|
27
|
+
|
28
|
+
Cooccurrence search
|
29
|
+
^^^^^^^^^^^^^^^^^^^
|
30
|
+
|
31
|
+
Cooccurrence search can find registered words from user's
|
32
|
+
wrong input. It uses user submit sequences that will be
|
33
|
+
learned from query logs, access logs and so on.
|
34
|
+
|
35
|
+
For example, there are the following user submissions:
|
36
|
+
|
37
|
+
+-------------------+---------------------------+
|
38
|
+
| query | time |
|
39
|
+
+===================+===========================+
|
40
|
+
| serach (typo!) | 2011-08-10T22:20:50+09:00 |
|
41
|
+
+-------------------+---------------------------+
|
42
|
+
| search (fixed!) | 2011-08-10T22:20:52+09:00 |
|
43
|
+
+-------------------+---------------------------+
|
44
|
+
|
45
|
+
Groonga creates the following correction pair from the above
|
46
|
+
submissions:
|
47
|
+
|
48
|
+
+----------+--------------------+
|
49
|
+
| input | corrected word |
|
50
|
+
+==========+====================+
|
51
|
+
|serach |search |
|
52
|
+
+----------+--------------------+
|
53
|
+
|
54
|
+
Groonga treats continuous submissions within a minute as
|
55
|
+
input correction by user. Not submitted user input sequence
|
56
|
+
between two submissions isn't used as learned data for
|
57
|
+
correction.
|
58
|
+
|
59
|
+
If an user inputs "serach" and cooccurrence search returns
|
60
|
+
"search" because "serach" is in input column and
|
61
|
+
corresponding corrected word column value is "search".
|
62
|
+
|
63
|
+
Similar search
|
64
|
+
^^^^^^^^^^^^^^
|
65
|
+
|
66
|
+
Similar search can find registered words that has one or
|
67
|
+
more the same tokens as user input. TokenBigram tokenizer is
|
68
|
+
used for tokenization because suggest dataset schema
|
69
|
+
created by :doc:`/executables/groonga-suggest-create-dataset`
|
70
|
+
uses TokenBigram tokenizer as the default tokenizer.
|
71
|
+
|
72
|
+
For example, there is a registered query "search engine". An
|
73
|
+
user can find "search engine" by "web search service",
|
74
|
+
"sound engine" and so on. Because "search engine" and "web
|
75
|
+
search engine" have the same token "search" and "search
|
76
|
+
engine" and "sound engine" have the same token "engine".
|
77
|
+
|
78
|
+
"search engine" is tokenized to "search" and "engine"
|
79
|
+
tokens. (Groonga's TokenBigram tokenizer doesn't tokenize
|
80
|
+
two characters for continuous alphabets and continuous
|
81
|
+
digits for reducing search
|
82
|
+
noise. TokenBigramSplitSymbolAlphaDigit tokenizer should be
|
83
|
+
used to ensure tokenizing to two characters.) "web search
|
84
|
+
service" is tokenized to "web", "search" and
|
85
|
+
"service". "sound engine" is tokenized to "sound" and
|
86
|
+
"engine".
|
87
|
+
|
88
|
+
How to use
|
89
|
+
----------
|
90
|
+
|
91
|
+
.. groonga-command
|
92
|
+
.. load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
|
93
|
+
.. [
|
94
|
+
.. {"sequence": "1", "time": 1312950803.86057, "item": "s"},
|
95
|
+
.. {"sequence": "1", "time": 1312950803.96857, "item": "sa"},
|
96
|
+
.. {"sequence": "1", "time": 1312950804.26057, "item": "sae"},
|
97
|
+
.. {"sequence": "1", "time": 1312950804.56057, "item": "saer"},
|
98
|
+
.. {"sequence": "1", "time": 1312950804.76057, "item": "saerc"},
|
99
|
+
.. {"sequence": "1", "time": 1312950805.76057, "item": "saerch", "type": "submit"},
|
100
|
+
.. {"sequence": "1", "time": 1312950809.76057, "item": "serch"},
|
101
|
+
.. {"sequence": "1", "time": 1312950810.86057, "item": "search", "type": "submit"}
|
102
|
+
.. ]
|
103
|
+
|
104
|
+
Groonga provides :doc:`/commands/suggest` command to use
|
105
|
+
correction. `--type correct` option requests corrections.
|
106
|
+
|
107
|
+
For example, here is an command to get correction results by
|
108
|
+
"saerch":
|
109
|
+
|
110
|
+
.. groonga-command
|
111
|
+
.. include:: ../example/correction-1.log
|
112
|
+
.. suggest --table item_query --column kana --types correction --frequency_threshold 1 --query saerch
|
113
|
+
|
114
|
+
How it learns
|
115
|
+
-------------
|
116
|
+
|
117
|
+
Cooccurrence search uses learned data. They are based on
|
118
|
+
query logs, access logs and so on. To create learned data,
|
119
|
+
groonga needs user submit inputs with time stamp.
|
120
|
+
|
121
|
+
For example, an user wants to search by "search" but the
|
122
|
+
user has typo "saerch" before inputs the correct query. The
|
123
|
+
user inputs the query with the following sequence:
|
124
|
+
|
125
|
+
1. 2011-08-10T13:33:23+09:00: s
|
126
|
+
2. 2011-08-10T13:33:23+09:00: sa
|
127
|
+
3. 2011-08-10T13:33:24+09:00: sae
|
128
|
+
4. 2011-08-10T13:33:24+09:00: saer
|
129
|
+
5. 2011-08-10T13:33:24+09:00: saerc
|
130
|
+
6. 2011-08-10T13:33:25+09:00: saerch (submit!)
|
131
|
+
7. 2011-08-10T13:33:29+09:00: serch (correcting...)
|
132
|
+
8. 2011-08-10T13:33:30+09:00: search (submit!)
|
133
|
+
|
134
|
+
Groonga can be learned from the input sequence by the
|
135
|
+
following command::
|
136
|
+
|
137
|
+
load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
|
138
|
+
[
|
139
|
+
{"sequence": "1", "time": 1312950803.86057, "item": "s"},
|
140
|
+
{"sequence": "1", "time": 1312950803.96857, "item": "sa"},
|
141
|
+
{"sequence": "1", "time": 1312950804.26057, "item": "sae"},
|
142
|
+
{"sequence": "1", "time": 1312950804.56057, "item": "saer"},
|
143
|
+
{"sequence": "1", "time": 1312950804.76057, "item": "saerc"},
|
144
|
+
{"sequence": "1", "time": 1312950805.76057, "item": "saerch", "type": "submit"},
|
145
|
+
{"sequence": "1", "time": 1312950809.76057, "item": "serch"},
|
146
|
+
{"sequence": "1", "time": 1312950810.86057, "item": "search", "type": "submit"}
|
147
|
+
]
|
148
|
+
|
@@ -0,0 +1,94 @@
|
|
1
|
+
.. -*- rst -*-
|
2
|
+
|
3
|
+
.. highlightlang:: none
|
4
|
+
|
5
|
+
Introduction
|
6
|
+
============
|
7
|
+
|
8
|
+
The suggest feature in groonga provides the following features:
|
9
|
+
|
10
|
+
* Completion
|
11
|
+
* Correction
|
12
|
+
* Suggestion
|
13
|
+
|
14
|
+
Completion
|
15
|
+
----------
|
16
|
+
|
17
|
+
Completion helps user input. If user inputs a partial word,
|
18
|
+
groonga can return complete words from registered
|
19
|
+
words.
|
20
|
+
|
21
|
+
For example, there are registered words:
|
22
|
+
|
23
|
+
* "groonga"
|
24
|
+
* "complete"
|
25
|
+
* "correction"
|
26
|
+
* "suggest"
|
27
|
+
|
28
|
+
An user inputs "co" and groonga returns "complete" and
|
29
|
+
"correction" because they starts with "co".
|
30
|
+
|
31
|
+
An user inputs "sug" and groonga returns "suggest" because
|
32
|
+
"suggest" starts with "sug".
|
33
|
+
|
34
|
+
An user inputs "ab" and groonga returns nothing because no
|
35
|
+
word starts with "ab".
|
36
|
+
|
37
|
+
Correction
|
38
|
+
----------
|
39
|
+
|
40
|
+
Correction also helps user input. If user inputs a wrong
|
41
|
+
word, groonga can return correct words from registered
|
42
|
+
correction pairs.
|
43
|
+
|
44
|
+
For example, there are registered correction pairs:
|
45
|
+
|
46
|
+
+------------+--------------+
|
47
|
+
| wrong word | correct word |
|
48
|
+
+============+==============+
|
49
|
+
| grroonga | groonga |
|
50
|
+
| gronga | groonga |
|
51
|
+
| gronnga | groonga |
|
52
|
+
+------------+--------------+
|
53
|
+
|
54
|
+
An user inputs "gronga" and groonga returns "groonga" because
|
55
|
+
"gronga" is in wrong word and corresponding correct word is
|
56
|
+
"groonga".
|
57
|
+
|
58
|
+
An user inputs "roonga" and groonga returns nothing because
|
59
|
+
"roonga" isn't in wrong word.
|
60
|
+
|
61
|
+
Suggestion
|
62
|
+
----------
|
63
|
+
|
64
|
+
Suggestion helps that user filters many found documents. If
|
65
|
+
user inputs a query, groonga can return new queries that has
|
66
|
+
more additional keywords from registered related query
|
67
|
+
pairs.
|
68
|
+
|
69
|
+
For example, there are registered related query pairs:
|
70
|
+
|
71
|
+
+----------------------------+--------------------------+
|
72
|
+
| keyword | related query |
|
73
|
+
+============================+==========================+
|
74
|
+
| groonga | groonga search engine |
|
75
|
+
+----------------------------+--------------------------+
|
76
|
+
| search | Google search |
|
77
|
+
+----------------------------+--------------------------+
|
78
|
+
| speed | groonga speed |
|
79
|
+
+----------------------------+--------------------------+
|
80
|
+
|
81
|
+
An user inputs "groonga" and groonga returns "groonga search
|
82
|
+
engine" because "groonga" is in keyword column and related
|
83
|
+
query column is "groonga search engine".
|
84
|
+
|
85
|
+
An user inputs "MySQL" and groonga returns nothing because
|
86
|
+
"MySQL" isn't in keyword column values.
|
87
|
+
|
88
|
+
Learning
|
89
|
+
--------
|
90
|
+
|
91
|
+
The suggest feature requires registered data before using
|
92
|
+
the feature. Those data can be registered from user inputs.
|
93
|
+
Gronnga-suggest-httpd and groonga-suggest-learner commands
|
94
|
+
are provided for the propose.
|
@@ -0,0 +1,115 @@
|
|
1
|
+
.. -*- rst -*-
|
2
|
+
|
3
|
+
.. highlightlang:: none
|
4
|
+
|
5
|
+
.. groonga-command
|
6
|
+
.. % groonga-suggest-create-dataset /tmp/groonga-databases/suggestion query
|
7
|
+
.. database: suggestion
|
8
|
+
|
9
|
+
Suggestion
|
10
|
+
==========
|
11
|
+
|
12
|
+
This section describes about the following completion
|
13
|
+
features:
|
14
|
+
|
15
|
+
* How it works
|
16
|
+
* How to use
|
17
|
+
* How to learn
|
18
|
+
|
19
|
+
How it works
|
20
|
+
------------
|
21
|
+
|
22
|
+
The suggestion feature uses a search to compute suggested
|
23
|
+
words:
|
24
|
+
|
25
|
+
1. Cooccurrence search against learned data.
|
26
|
+
|
27
|
+
Cooccurrence search
|
28
|
+
^^^^^^^^^^^^^^^^^^^
|
29
|
+
|
30
|
+
Cooccurrence search can find related words from user's
|
31
|
+
input. It uses user submissions that will be learned
|
32
|
+
from query logs, access logs and so on.
|
33
|
+
|
34
|
+
For example, there are the following user submissions:
|
35
|
+
|
36
|
+
+----------------------+
|
37
|
+
| query |
|
38
|
+
+======================+
|
39
|
+
| search engine |
|
40
|
+
+----------------------+
|
41
|
+
| web search realtime |
|
42
|
+
+----------------------+
|
43
|
+
|
44
|
+
Groonga creates the following suggestion pairs:
|
45
|
+
|
46
|
+
+----------+------------------------------------+
|
47
|
+
| input | suggested words |
|
48
|
+
+==========+====================================+
|
49
|
+
|search |search engine |
|
50
|
+
+----------+------------------------------------+
|
51
|
+
|engine |search engine |
|
52
|
+
+----------+------------------------------------+
|
53
|
+
|web |web search realtime |
|
54
|
+
+----------+------------------------------------+
|
55
|
+
|search |web search realtime |
|
56
|
+
+----------+------------------------------------+
|
57
|
+
|realtime |web search realtime |
|
58
|
+
+----------+------------------------------------+
|
59
|
+
|
60
|
+
Those pairs are created by the following steps:
|
61
|
+
|
62
|
+
1. Tokenizes user input query by TokenDelimit tokenizer
|
63
|
+
that uses a space as token delimiter. (e.g. "search
|
64
|
+
engine" is tokenized to two tokens "search" and
|
65
|
+
"engine".)
|
66
|
+
2. Creates a pair that is consists of a token and original
|
67
|
+
query for each token.
|
68
|
+
|
69
|
+
If an user inputs "search" and cooccurrence search returns
|
70
|
+
"search engine" and "web search realtime" because "search" is
|
71
|
+
in two input columns and corresponding suggested word
|
72
|
+
columns have "search engine" and "web search realtime".
|
73
|
+
|
74
|
+
How to use
|
75
|
+
----------
|
76
|
+
|
77
|
+
.. groonga-command
|
78
|
+
.. load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
|
79
|
+
.. [
|
80
|
+
.. {"sequence": "1", "time": 1312950803.86057, "item": "search engine", "type": "submit"},
|
81
|
+
.. {"sequence": "1", "time": 1312950808.86057, "item": "web search realtime", "type": "submit"}
|
82
|
+
.. ]
|
83
|
+
|
84
|
+
Groonga provides :doc:`/commands/suggest` command to use
|
85
|
+
suggestion. `--type suggest` option requests suggestion
|
86
|
+
|
87
|
+
For example, here is an command to get suggestion results by
|
88
|
+
"search":
|
89
|
+
|
90
|
+
.. groonga-command
|
91
|
+
.. include:: ../example/suggestion-1.log
|
92
|
+
.. suggest --table item_query --column kana --types suggest --frequency_threshold 1 --query search
|
93
|
+
|
94
|
+
How it learns
|
95
|
+
-------------
|
96
|
+
|
97
|
+
Cooccurrence search uses learned data. They are based on
|
98
|
+
query logs, access logs and so on. To create learned data,
|
99
|
+
groonga needs user input sequence with time stamp and user
|
100
|
+
submit input with time stamp.
|
101
|
+
|
102
|
+
For example, an user wants to search by "engine". The user
|
103
|
+
inputs the query with the following sequence:
|
104
|
+
|
105
|
+
1. 2011-08-10T13:33:23+09:00: search engine (submit)
|
106
|
+
2. 2011-08-10T13:33:28+09:00: web search realtime (submit)
|
107
|
+
|
108
|
+
Groonga can be learned from the submissions by the
|
109
|
+
following command::
|
110
|
+
|
111
|
+
load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
|
112
|
+
[
|
113
|
+
{"sequence": "1", "time": 1312950803.86057, "item": "search engine", "type": "submit"},
|
114
|
+
{"sequence": "1", "time": 1312950808.86057, "item": "web search realtime", "type": "submit"}
|
115
|
+
]
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.. -*- rst -*-
|
2
|
+
|
3
|
+
.. highlightlang:: none
|
4
|
+
|
5
|
+
Suggest
|
6
|
+
=======
|
7
|
+
|
8
|
+
.. note::
|
9
|
+
|
10
|
+
The suggest feature specification isn't stable. The
|
11
|
+
specification may be changed.
|
12
|
+
|
13
|
+
Groonga has the suggest feature. This section describes how to use it and how it works.
|
14
|
+
|
15
|
+
.. toctree::
|
16
|
+
:maxdepth: 2
|
17
|
+
|
18
|
+
suggest/introduction
|
19
|
+
suggest/tutorial
|
20
|
+
suggest/completion
|
21
|
+
suggest/correction
|
22
|
+
suggest/suggestion
|
@@ -3,6 +3,7 @@
|
|
3
3
|
.. highlightlang:: none
|
4
4
|
|
5
5
|
.. groonga-command
|
6
|
+
.. database: tutorial
|
6
7
|
.. table_remove Site
|
7
8
|
.. table_remove Terms
|
8
9
|
|
@@ -73,7 +74,7 @@ groonga実行ファイルやgroongaサーバを介して様々なコマンドを
|
|
73
74
|
|
74
75
|
書式2において、空白や、記号「"'()\」のうちいずれかを含む値を指定したい場合は、シングルクォート(')かダブルクォート(")で値を囲みます。
|
75
76
|
|
76
|
-
詳しくは、 :doc:`/
|
77
|
+
詳しくは、 :doc:`/executables/groonga` のコマンドの項を参考にしてください。
|
77
78
|
|
78
79
|
主なコマンド
|
79
80
|
------------
|
@@ -5,16 +5,32 @@ from subprocess import *
|
|
5
5
|
from select import select
|
6
6
|
from sys import argv,stdout
|
7
7
|
import os
|
8
|
+
import os.path
|
9
|
+
import shutil
|
8
10
|
|
9
|
-
|
10
|
-
if GROONGA_PATH is None:
|
11
|
-
GROONGA_PATH = "groonga"
|
12
|
-
DB_PATH = "/tmp/example.db"
|
11
|
+
DB_DIRECTORY = "/tmp/groonga-databases"
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
shutil.rmtree(DB_DIRECTORY, ignore_errors=True)
|
14
|
+
os.makedirs(DB_DIRECTORY)
|
15
|
+
|
16
|
+
groonga_process = None
|
17
|
+
def close_groonga():
|
18
|
+
global groonga_process
|
19
|
+
if groonga_process:
|
20
|
+
groonga_process.stdin.close()
|
21
|
+
groonga_process.stdout.close()
|
22
|
+
groonga_process = None
|
23
|
+
print '###<<< database: close'
|
24
|
+
|
25
|
+
def reconnect(name):
|
26
|
+
global groonga_process
|
27
|
+
close_groonga()
|
28
|
+
db_path = os.path.join(DB_DIRECTORY, name)
|
29
|
+
if os.path.exists(db_path):
|
30
|
+
groonga_process = Popen(["groonga", db_path], stdin=PIPE, stdout=PIPE)
|
31
|
+
else:
|
32
|
+
groonga_process = Popen(["groonga", "-n", db_path], stdin=PIPE, stdout=PIPE)
|
33
|
+
print '###>>> database: open <%s>' % db_path
|
18
34
|
|
19
35
|
fout = None
|
20
36
|
|
@@ -22,14 +38,14 @@ def execmd(cmd, fout):
|
|
22
38
|
a = '> ' + cmd + "\n"
|
23
39
|
stdout.write(a)
|
24
40
|
stdout.flush()
|
25
|
-
|
26
|
-
|
41
|
+
groonga_process.stdin.write(cmd + "\n")
|
42
|
+
groonga_process.stdin.flush()
|
27
43
|
if fout:
|
28
44
|
fout.write(a + " ")
|
29
45
|
while True:
|
30
|
-
out = select([
|
46
|
+
out = select([groonga_process.stdout], [], [], 0.2)
|
31
47
|
if len(out[0]):
|
32
|
-
a =
|
48
|
+
a = groonga_process.stdout.read(1)
|
33
49
|
if a != None:
|
34
50
|
stdout.write(a)
|
35
51
|
if fout:
|
@@ -63,7 +79,10 @@ def readfile(fname, outflag):
|
|
63
79
|
fout = None
|
64
80
|
while len(dat):
|
65
81
|
cmd = dat.pop(0)
|
66
|
-
if cmd.startswith('..
|
82
|
+
if cmd.startswith('.. database:'):
|
83
|
+
database_name = cmd[cmd.index(":")+1:].strip()
|
84
|
+
reconnect(database_name)
|
85
|
+
elif cmd.startswith('.. include:: '):
|
67
86
|
a = rootdir + cmd[13:]
|
68
87
|
if outflag == 0:
|
69
88
|
dir_name = os.path.dirname(a)
|
@@ -71,7 +90,13 @@ def readfile(fname, outflag):
|
|
71
90
|
os.makedirs(dir_name)
|
72
91
|
fout = open(a, 'w')
|
73
92
|
print '### write start : ' + a
|
74
|
-
fout.write("
|
93
|
+
fout.write("Execution example::\n\n ")
|
94
|
+
elif cmd.startswith('.. % '):
|
95
|
+
a = cmd[5:]
|
96
|
+
if fout:
|
97
|
+
fout.write(a + "\n ")
|
98
|
+
print a
|
99
|
+
os.system(a)
|
75
100
|
elif cmd.startswith('.. .. '):
|
76
101
|
a = cmd[6:]
|
77
102
|
if fout:
|
@@ -97,11 +122,13 @@ def readfile(fname, outflag):
|
|
97
122
|
readfile(a, outflag + 1)
|
98
123
|
print '###<<< include end'
|
99
124
|
|
100
|
-
|
101
|
-
if len(argv)
|
102
|
-
|
125
|
+
entry_point = "./"
|
126
|
+
if len(argv) == 2:
|
127
|
+
entry_point = argv[1]
|
128
|
+
if os.path.isfile(entry_point):
|
129
|
+
readfile(entry_point, 0)
|
103
130
|
else:
|
104
|
-
for root, dirs, files in os.walk(
|
131
|
+
for root, dirs, files in os.walk(entry_point):
|
105
132
|
for fname in files:
|
106
133
|
if fname.lower().endswith('.txt'):
|
107
134
|
b = os.path.join(root, fname)
|
@@ -110,6 +137,5 @@ else:
|
|
110
137
|
|
111
138
|
if fout:
|
112
139
|
fout.close()
|
113
|
-
|
114
|
-
ioout.close()
|
140
|
+
close_groonga()
|
115
141
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
Primary authors:
|
2
|
+
Daijiro MORI <morita at razil. jp>
|
3
|
+
Tasuku SUENAGA <a at razil. jp>
|
4
|
+
Yutaro Shimamura <yu at razil. jp>
|
5
|
+
Kouhei Sutou <kou at cozmixng. org>
|
6
|
+
Kazuho Oku <kazuhooku at gmail. com>
|
7
|
+
Moriyoshi Koizumi <moriyoshi at gmail. com>
|
8
|
+
|
9
|
+
Patches and modules from:
|
10
|
+
Daisuke Maki <dmaki at cpan. org>
|
11
|
+
Kazuhiro Osawa <ko at yappo. ne. jp>
|
12
|
+
Hiroyuki OYAMA <oyama at module. jp>
|
13
|
+
Nguyen Anh Phu <phuna at users. sourceforge. net>
|
14
|
+
Hideyuki KUROSU <hideyuki. kurosu at gmail. com>
|
15
|
+
Takuo Kitame <kitame at valinux. co. jp>
|
16
|
+
Yoshihiro Oyama <yos-o at smilemark. com>
|
17
|
+
cZfSunOs.U <sunos at saita. ma>
|