Groonga 5.0.8 has been released

Groonga 5.0.8 has been released!

How to install: Install


  • Important fix for the future releases
    • Supported columns for temporary table
  • Performance improvements
  • Incompatible changes
    • Changed to normalize regular expression match target text before matching

Note that this release has an incompatible change about regular expression handling. See following the section if you use regular expression in query and use capital letter for it.

Please feel free to ask us on mailing list or GitHub Issues if you have any questions.

Supported columns for temporary table

In this release, columns for temporary table is supported.

This feature is not practically used in Groonga yet, but it is significant for the future release of Groonga.

There are some merit which may be introduced in the future release:

  • select command supports alias in the value of output_columns. It is similar to AS alias_name in SQL

  • select command supports sortby or drilldown by pre-filtered value dynamically

For example, you can drilldown by pre-filtered value such as day of week instead of the value of Time column.

This feature is also important for wrapper mode in Mroonga because it can support transaction correctly without breaking indexes by using temporary table when rollback is executed.

Supported HTTP/2 by groonga-httpd

Groonga provides two HTTP server functionality. One is HTTP server implementation for Groonga by itself, The other is implemented as nginx module. The latter supported HTTP/2 now.

In this release, the version of bundled nginx is updated to 1.9.5. As a result, groonga-httpd has supported HTTP/2 because groonga-httpd uses it internally.

Change the configuration file such as groonga-httpd.conf to enable this feature:

http {
  server {
    # listen 10041;
    listen 10041 http2;

    # ...

By this feature, reducing the amount of traffic and improving the throughput are expected.

Changed to normalize regular expression match target text before matching

In this release, regular expression match target text is changed to normalize before matching.

This change is introduced two point of views.

  • For consistency

This change is introduced for consistency because other operators in Groonga normalize match target text before matching. It aims not to confuse Groonga user about such difference.

  • For performance

By normalizing match target text before matching makes process of regular expression simple.

If target text isn't normalized, you need to use complex regular expressions such as \A[Hh]ello and \A(?i)hello. Complex regular expressions can't be evaluated by index. If target text is normalized, you can use simple regular expressions. They may be evaluated by index. It's fast.


See Release 5.0.8 2015-09-29 about detailed changes since 5.0.7.

Let's search by Groonga!