# groonga - An open-source fulltext search engine and column store.

- 日本語

# News

## Release 7.0.1 - 2017-03-29

### Improvements

- Exported the following API
  - grn_ii_cursor_next_pos()
  - grn_table_apply_expr()
  - grn_obj_is_data_column()
  - grn_obj_is_expr()
  - grn_obj_is_scalar_column()
- [dump] Supported to dump weight reference vector.
- [load] Supported to load `array<object>` style weight vector column. The example of `array<object>` style is: `[{"key1": weight1}, {"key2": weight2}]`.
- Supported to search `!(XXX OPERATOR VALUE)` by index. Supported operator is not only `>` but also `>=`, `<`, `<=`, `==` and `!=`.
- Supported index search for "!(column == CONSTANT)". The example in this case is: `!(column == 29)` and so on.
- Supported more "!" optimization in the following patterns.
  - `!(column @ "X") && (column @ "Y")`
  - `(column @ "Y") && !(column @ "X")`
  - `(column @ "Y") &! !(column @ "X")`
- Supported to search `XXX || !(column @ "xxx")` by index.
- [dump] Changed to use `'{"x": 1, "y": 2}'` style for not referenced weight vector. This change doesn't affect to old Groonga because it already supports one.
- [experimental] Supported `GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE` environment variable. This variable controls whether query optimization which is based on estimated size is applied or not. This feature is disabled by default. Set `GRN_ORDER_BY_ESTIMATED_SIZE_ENABLE=yes` if you want to try it.
- [select] Added query log for `columns`, `drilldown` evaluation.
- [select] Changed query log format for `drilldown`. This is backward incompatible change, but it only affects users who convert query log by own programs.
- [table_remove] Reduced temporary memory usage. It's enabled when the number of max threads is 0.
- [select] `columns[LABEL](N)` is used for query log format instead of `columns(N)[LABEL]`..
- [Query expansion] Updated example to use vector column because it is recommended way. [Reported by Gurunavi, Inc]
- Supported to detect canceled request while locking. It fixes the problem that `request_cancel` is ignored unexpectedly while locking.
- [logical_select] Supported `initial` and `filtered` stage dynamic columns. The examples are: `--columns[LABEL].stage initial` or `--columns[LABEL].stage filtered`.
- [logical_select] Supported `match_columns`, `query` and `drilldown_filter` option.
- [highlight_html] Supported similar search.
- [logical_select] Supported `initial` and stage dynamic columns in labeled drilldown. The example is: `--drilldowns[LABEL].stage initial`.
- [logical_select] Supported window function in dynamic column.
- [select] Added documentation about dynamic columns.
- [Window function] Added section about window functions.
- [CentOS] Dropped CentOS 5 support because of EOL.
- [httpd] Updated bundled nginx to 1.11.12
- Supported to disable AND match optimization by environment variable. You can disable this feature by `GRN_TABLE_SELECT_AND_MIN_SKIP_ENABLE=no`. This feature is enable by default.
- [vector_new] Added a new function to create a new vector.
- [select] Added documentation about `drilldown_filter`.

### Fixes

- [lock_clear] Fixed a crash bug against temporary database.
- Fixed a problem that dynamically updated index size was increased for natural language since Grooonga 6.1.4.
- [select] Fixed a bug that "A && B.C @ X" may not return records that should be matched.
- Fixed a conflict with `grn_io_flush()` and `grn_io_expire()`. Without this change, if `io_flush` and `load` command are executed simultaneously in specific timing, it causes a crash bug by access violation.
- [logical_table_remove] Fixed a crash bug when the max number of threads is 1.

### Thanks

- Gurunavi, Inc.

## Release 7.0.0 - 2017-02-09

### Improvements

- [in_values] Supported sequential search for reference vector column. [Patch by Naoya Murakami] [GitHub#629]
- [select] Changed to report error instead of ignoring on invalid `drilldown[LABEL].sort_keys`.
- [select] Removed needless metadata updates on DB. It reduces the case that database lock remains even though `select` command is executed. [Reported by aomi-n]
- [lock_clear] Changed to clear metadata lock by lock_clear against DB.
- [CentOS] Enabled EPEL by default to install Groonga on Amazon Linux.
- [query] Supported "@X" style in script syntax for prefix("@^"), suffix("@$"), regexp("@^") search.
- [query] Added documentation about available list of mode. The default mode is `MATCH` ("@") mode which executes full text search.
- [rpm][centos] Supported groonga-token-filter-stem package which provides stemming feature by `TokenFilterStem` token filter on CentOS 7. [GitHub#633] [Reported by Tim Bellefleur]
- [window_record_number] Marked `record_number` as deprecated. Use `window_record_number` instead. `record_number` is still available for backward compatibility.
- [window_sum] Added `window_sum` window function. It's similar behavior to window function sum() on PostgreSQL.
- Supported to construct offline indexing with in-memory (temporary) `TABLE_DAT_KEY` table. [GitHub#623] [Reported by Naoya Murakami]
- [onigmo] Updated bundled Onigmo to 6.1.1.
- Supported `columns[LABEL].window.group_keys`. It's used to apply window function for every group.
- [load] Supported to report error on invalid key. It enables you to detect mismatch type of key.
- [load] Supported `--output_errors yes` option. If you specify "yes", you can get errors for each load failed record. Note that this feature requires command version 3.
- [load] Improve error message on table key cast failure. Instead of "cast failed", type of table key and target type of table key are also contained in error message.
- [httpd] Updated bundled nginx to 1.11.9.

### Fixes

- Fixed a bug that nonexistent sort keys for `drilldowns[LABEL]` or `slices[LABEL]` causes invalid JSON parse error. [Patch by Naoya Murakami] [GitHub#627]
- Fixed a bug that access to nonexistent sub records for group causes a crash. For example, This bug affects the case when you use `drilldowns[LABEL].sort_keys _sum` without specifying `calc_types`. [Patch by Naoya Murakami] [GitHub#625]
- Fixed a crash bug when tokenizer has an error. It's caused when tokenizer and token filter are registered and tokenizer has an error.
- [window_record_number] Fixed a bug that arguments for window function is not correctly passed. [GitHub#634][Patch by Naoya Murakami]

### Thanks

- Naoya Murakami
- aomi-n

## The old releases

- News - 6.x
  - Release 6.1.5 - 2017-01-23
  - Release 6.1.4 - 2017-01-18
  - Release 6.1.3 - 2017-01-06
  - Release 6.1.2 - 2016-12-31
  - Release 6.1.1 - 2016-11-29
  - Release 6.1.0 - 2016-10-29
  - Release 6.0.9 - 2016-09-29
  - Release 6.0.8 - 2016-08-29
  - Release 6.0.7 - 2016-07-29
  - Release 6.0.5 - 2016-06-29
  - Release 6.0.4 - 2016-06-06
  - Release 6.0.3 - 2016-05-29
  - Release 6.0.2 - 2016-04-29
  - Release 6.0.1 - 2016-03-29
  - Release 6.0.0 - 2016-02-29
- News - 5.x
  - Release 5.1.2 - 2016-01-29
  - Release 5.1.1 - 2015-12-29
  - Release 5.1.0 - 2015-11-29
  - Release 5.0.9 - 2015-10-29
  - Release 5.0.8 - 2015-09-29
  - Release 5.0.7 - 2015-08-31
  - Release 5.0.6 - 2015-07-29
  - Release 5.0.5 - 2015-06-29
  - Release 5.0.4 - 2015-05-29
  - Release 5.0.3 - 2015-04-29
  - Release 5.0.2 - 2015-03-31
  - Release 5.0.1 - 2015-03-29
  - Release 5.0.0 - 2015-02-09
- News - 4.x
  - Release 4.1.1 - 2015-01-29
  - Release 4.1.0 - 2015-01-09
  - Release 4.0.9 - 2014-12-29
  - Release 4.0.8 - 2014-11-29
  - Release 4.0.7 - 2014-10-29
  - Release 4.0.6 - 2014-09-29
  - Release 4.0.5 - 2014-08-29
  - Release 4.0.4 - 2014-07-29
  - Release 4.0.3 - 2014-06-29
  - Release 4.0.2 - 2014-05-29
  - Release 4.0.1 - 2014-03-29
  - Release 4.0.0 - 2014-02-09
- News - 3.x
  - Release 3.1.2 - 2014-01-29
  - Release 3.1.1 - 2013-12-29
  - Release 3.1.0 - 2013-11-29
  - Release 3.0.9 - 2013-10-29
  - Release 3.0.8 - 2013-09-29
  - Release 3.0.7 - 2013-08-29
  - Release 3.0.6 - 2013-07-29
  - Release 3.0.5 - 2013-06-29
  - Release 3.0.4 - 2013-05-29
  - Release 3.0.3 - 2013-04-29
  - Release 3.0.2 - 2013-03-29
  - Release 3.0.1 - 2013-02-28
  - Release 3.0.0 - 2013-02-09
- News - 2.x
  - Release 2.1.2 - 2013-01-29
  - Release 2.1.1 - 2012-12-29
  - Release 2.1.0 - 2012-12-29
  - Release 2.0.9 - 2012-11-29
  - Release 2.0.8 - 2012-10-29
  - Release 2.0.7 - 2012-09-29
  - Release 2.0.6 - 2012-08-29
  - Release 2.0.5 - 2012-07-29
  - Release 2.0.4 - 2012-06-29
  - Release 2.0.3 - 2012-05-29
  - Release 2.0.2 - 2012-04-29
  - Release 2.0.1 - 2012-03-29
  - Release 2.0.0 - 2012-02-29
- News - 1.3.x
  - Release 1.3.0 - 2012-01-29
- News - 1.2.x
  - Release 1.2.9 - 2011-12-29
  - Release 1.2.8 - 2011-11-29
  - Release 1.2.7 - 2011-10-29
  - Release 1.2.6 - 2011-09-29
  - Release 1.2.5 - 2011-08-29
  - Release 1.2.4 - 2011-07-29
  - Release 1.2.3 - 2011-06-29
  - Release 1.2.2 - 2011-05-29
  - 1.2.1リリース - 2011-04-29
  - 1.2.0リリース - 2011-03-29
- バージョン1.1.xのお知らせ
  - 1.1.0リリース - 2011-02-09
- バージョン1.0.xのお知らせ
  - 1.0.8リリース - 2011-02-02
  - 1.0.7リリース - 2011-01-29
  - 1.0.6リリース - 2010-12-31
  - 1.0.5リリース - 2010-12-29
  - 1.0.4リリース - 2010-11-29
  - 1.0.3リリース - 2010-10-29
  - 1.0.2リリース - 2010-09-09
  - 1.0.1リリース - 2010-09-06
  - 1.0.0リリース - 2010-08-29
- バージョン0.xのお知らせ
  - 0.7.7リリース - 2010-08-25
  - 0.7.6リリース - 2010-08-19
- News in Senna period
  - Senna -> groonga - 2009-01-14
  - 2006-04-05
  - 2006-03-03
  - 2006-01-16
  - 2006-01-12
  - 2005-12-22
  - 2005-10-27
  - 2005-09-17
  - 2005-09-08
  - 2005-08-16
  - 2005-07-05
  - 2005-06-23
  - 2005-04-12