|
From: HAYASHI K. <ha...@cl...> - 2016-04-29 02:35:22
|
Hi, Groonga 6.0.2 has been released! http://groonga.org/docs/news.html#release-6-0-2 Install: http://groonga.org/docs/install.html Charcteristics: http://groonga.org/docs/characteristic.html # Important notice In previous release (6.0.1), KEY_LARGE flag was added to treat more larger data than ever before in a single table. But, there was an issue when specifying this flag: * You have to use the same path as when you created to open the database correctly. Otherwise, you do not able to open it. (e.g. If you create a database with /tmp/db/db and then you use /tmp/db2/db for database path, you get an error.) Therefore, if you want to use KEY_LARGE flag, you must use this release instead of previous release. If you have already installed previous release and not been able to open your database which uses KEY_LARGE after creating, you can restore the database with the following steps: * Open the database with previous release (6.0.1) Groonga, and then dump it. * Load from database dump with new release (6.0.2) Groonga. The topics in this release: * Supported to specify timeout per request * Supported nested aggregate calculations and groups in drilldown * Drop support for Debian GNU/Linux 7.0 (Wheezy) * Supported Ubuntu 16.04 (Xenial Xerus) This release includes some bug fixes of load command, so upgrade Groonga! # Topics ## Supported to specify timeout per request In this release, Groonga supports timeout per request. If it does not complete a request until specified timeout, this request will be canceled. Without specifying timeout, Groonga continues to process until completing a request. You can specify timeout per request with --request_timeout. The following example specifies timeout to 5 seconds: select Users --request_timeout 5 For more information about request timeout, please refer to the request timeout document. http://groonga.org/docs/reference/command/request_timeout.html ## Supported nested aggregations and groups in drilldown In this release, it has been improved advanced drilldown, that is, Groonga supports nested aggregate calculations and groups in drilldown. http://groonga.org/docs/reference/commands/select.html#select-advanced-drilldown-related-parameters Let's see how to use it with an brief example. For example, let's do nested drilldown by category and then by tag. In this example, it uses a schema that contains a table named as Memo which has a column named as tag, A table named as Tags which has a columns named as category. table_create Tags TABLE_PAT_KEY ShortText column_create Tags category COLUMN_SCALAR ShortText table_create Memos TABLE_HASH_KEY ShortText column_create Memos tag COLUMN_SCALAR Tags Next, register sample data into each tables. load --table Memos [ {"_key": "Groonga is fast!", "tag": "Groonga"}, {"_key": "Mroonga is fast!", "tag": "Mroonga"}, {"_key": "Groonga sticker!", "tag": "Groonga"}, {"_key": "Rroonga is fast!", "tag": "Rroonga"} ] load --table Tags [ {"_key": "Groonga", "category": "C/C++"}, {"_key": "Mroonga", "category": "C/C++"}, {"_key": "Rroonga", "category": "Ruby"} ] Now, it is ready to use nested aggregations in drilldown. Let's try to use nested drilldown. Execute the following query. Note that this query associates each of drilldowns with label: select Memos \ --drilldown[label1].table label2 \ --drilldown[label1].keys category \ --drilldown[label1].output_columns _key,_nsubrecs \ --drilldown[label2].keys tag \ --drilldown[label2].output_columns _key,_nsubrecs,category With advanced drilldown, it had been able to execute multiple drilldowns by label. But, each of drilldowns had been independent and not to be able to construct nested drilldown query before this release. After executing the above query, you get the following result. { "label1": [ [ 2 ], [ [ "_key", "ShortText" ], [ "_nsubrecs", "Int32" ] ], [ "C/C++", 2 ], [ "Ruby", 1 ] ], "label2": [ [ 3 ], [ [ "_key", "ShortText" ], [ "_nsubrecs", "Int32" ], [ "category", "ShortText" ] ], [ "Groonga", 2, "C/C++" ], [ "Mroonga", 1, "C/C++" ], [ "Rroonga", 1, "Ruby" ] ] } ## Drop to support Debian GNU/Linux 7.0 (Wheezy) In this release, we drop support for Debian GNU/Linux 7.0 (Wheezy). Because Wheezy has been reached EOL in April 26th, 2016. Although Wheezy is still supported as LTS until May 2018, we stop to provide Groonga package for Wheezy. We provide Groonga package for Debian Jessie (8.0), so we recommend to migrate your Wheezy environment to Jessie. * How to install in Debian GNU/Linux 8.0 http://groonga.org/docs/install/debian.html#jessie ## Supported Ubuntu 16.04 (Xenial Xerus) In this release, we start to provide package for Ubuntu 16.04 in PPA on Launchpad. For more information about how to install, please refer to the following document: * How to install on Ubuntu 16.04 (Xenial Xerus) http://groonga.org/docs/install/ubuntu.html ## Improvements * Supported bool in comparison operators (>, >=, <, <=). TRUE is casted to 1. FALSE is casted to 0. Thus you specify function which returns boolean value in comparison. * [groonga-http][Request timeout] Supported request_timeout parameter. Canceled request returns HTTP/1.1 408 Request Timeout status code. * [table_tokenize] Added index_column option. [GitHub#534] [Patch by Naoya Murakami] * [table_tokenize] Supported to output estimated_size. [GitHub#518] [Patch by Naoya Murakami] * [geo_in_rectangle] Supported to work without index. In this case, sequential search is executed as a fallback. Reduced needless internal loops. It improves phrase search performance. [GitHub#519] [Patch by Naoya Murakami] * [How to contribute to groonga] Updated documentation about contribution. [GitHub#522] [Patch by Hiroshi Ohkubo] * [Return code] Updated documentation about return code list. * [groonga executable file] Added --default-request-timeout option. * [windows] Supported DLL version. * Supported index used search even if value only term exists. For example, true || column > 0 doesn't use index even if column has index. In this release, above issue is resolved. * [select] Supported specifying grouped table [GitHub#524,#526,#527,#528,#529] [Patch by Naoya Murakami] Supported grouping by Int{8,16,64}/UInt{8,16,64} value. In the previous versions, only 32bit fixed size value was supported. * Added table name to error message for invalid sort key. * [groonga-suggest-httpd] Updated documentation. * [Completion] Fixed a typo about example. [groonga-dev,04008] [Reported by Tachikawa Hiroaki] * [grndb] Added a workaround to keep backward compatibility. use object_inspect instead of inspect. * [groonga-httpd] Updated bundled nginx version to 1.9.15. * [centos] Supported systemd. * [doc] Supported only HTML output. [GitHub#532] [Patch by Hiroshi Ohkubo] * [groonga-httpd][centos] Supported to customize environment variables. * [Others] Updated documentation about --with-package-platorm option. * [ubuntu] Supported Ubuntu 16.04 (Xenial Xerus) ## Fixes * Fixed a bug that tokenization of zero-length values are failed. For example, if description column is indexed column, tokenizer reports an error. [GitHub#508] [Reported by Naoya Murakami]: load --table docs [ ["_key","description"], [2,""] ] * Fixed a crash bug because of invalid critical section handling. [GitHub#507] * [release] Fixed a typo about grntest howto. [GitHub#511] [Patch by Hiroshi Ohkubo] * [doc] Removed man support. * Removed invalid debug log messages which make user confused. * Fixed a bug that data is not correctly flushed because internal counter is wrongly cleared. In the previous version, when size of data exceeds specific one, it was failed to create indexes. [GitHub#517] [Reported by Naoya Murakami] * Fixed a bug that a process can't use more than one caches in parallel. [GitHub#515] * Fixed a bug that internally used alloc_info structure which is used to find memory leaks is not exclusively accessed. Without this fix, it may causes a crash. [GitHub#523] * [tokenizer mecab] Fixed a memory leak on dictionary encoding mismatch error. [groonga-dev,04012] [Reported by Naoya Murakami] * Fixed a bug that combination of groonga-suggest-httpd and groonga-suggest-learner didn't work. * [doc] Removed needless uuid from *.po [GitHub#531] [Patch by Hiroshi Ohkubo] * [highlight_html] Fixed a bug that duplicated text is returned. This bug occurs when highlighted keyword occurred 1024 or more times. * Fixed a bug that KEY_LARGE conflicts with existing flag. If you use TABLE_HASH_KEY|KEY_LARGE in the previous version, there is a possibility to break database. Please recreate the table. ## Thanks * Naoya Murakami * Hiroshi Ohkubo * Tachikawa Hiroaki -- HAYASHI Kentaro <ha...@cl...> |