Groonga 7.0.5 has been released

Groonga 7.0.5 has been released!

How to install: Install


Here are important changes in this release:

  • [dump] --sort_hash_table option has been supported
  • math_abs() function has been supported
  • Ubuntu 16.10 (Yakkety Yak) support has been dropped

[dump] --sort_hash_table option has been supported

In this release, dump command supported --sort_hash_table option.

If this option is specified as --sort_hash_table yes, dump command shows result sorted by _key.

It is useful to check difference about dumped results of hash table.

math_abs() function has been supported

In this release, math_abs() function was supported. This function is used to calculate absolute value.

Register math plugin to use this function.

plugin_register functions/math

Here is the sample schema and data:

table_create City TABLE_HASH_KEY ShortText
column_create City utc COLUMN_SCALAR Int32
load --table City
{"_key": "Tokyo",    "utc": 9},
{"_key": "New York", "utc": -4}, 
{"_key": "Paris",    "utc": 2}

Let's search near city from Singapore. In this context, near means that the value of time difference is smaller one.

You can search it by the following query:

select City \
  --filter true \
  --output_columns '_key, utc, _score' \
  --scorer '_score = math_abs(8 - utc)' \
  --sort_keys _score

Ubuntu 16.10 (Yakkety Yak) support has been dropped

In this release, Ubuntu 16.10 (Yakkety Yak) support was dropped. It has reached EOL on July 20, 2017.


See Release 7.0.5 2017-07-29 about detailed changes since 7.0.4.

Let's search by Groonga!


PGroonga (fast full text search module for PostgreSQL) 1.2.3 has been released

PGroonga (píːzí:lúnɡά) (fast full text search module for PostgreSQL) 1.2.3 has been released!

See PGroonga 1.0.0 release announce about PGroonga.


Here are highlights from 1.2.1:

  • Cleared operator names

  • Supported query expansion

  • Supported auto complete

  • Supported similar search

  • Improved usage of full text search against jsonb

Cleared operator names

PGroonga has used @@ as operator name for full text search with query language. It's the operator name used by textsearch. It's for easy to use for existing PostgreSQL users. But it's not easy to use because there are differences between textserach's @@ and PGroonga's @@.

PGroonga introduced &? as alternative of @@ and deprecated @@. It works well when we run SQL directly on psql, but doesn't work well with client libraries. Because ? is used as placeholder character in client libraries.

Finally, PGroonga introduces &@~ and deprecates @@ and &?.

Existing operator classes that doesn't have _v2 suffix can use &@~. So users can migrate new operator gradually.

Supported query expansion

Query expansion is used for implementing synonym search. (*)

(*) Synonym search is a search to find by meaning rather than surface. For example, you can find "PostgreSQL" with "PostgreSQL", "Postgres" or "PG".

Query expansion rules (synonyms) are managed in normal table. So you can use normal SELECT, INSERT, UPDATE and DELETE to manage them. Textsearch uses synonym dictionary to manage synonyms. So you need to use special way to manage synonyms.

See pgroonga.query_expand function for details.

Supported auto complete

Simple full text search only full text search system is too naive as the recent full text search system. The recent full text search systems have auto complete feature as one of standard features. In this release, PGroonga supports auto complete feature.

Auto complete is implemented by prefix search and full text search. PGroonga also provides Japanese specialized auto complete feature. PGroonga supports auto complete by Romaji.

Complete candidates are managed in normal table. It's easy to maintain.

See how to implement auto complete for details.

Similar search is useful search for providing related documents to users. _v2 operator classes support similar search.

See &~? operator for how to use similar search. TokenMecab tokenizer is recommended for similar search against Japanese documents. It's described at the end of the document. If your documents are written in Japanese, see the document carefully.

Improved usage of full text search against jsonb

You can search all texts in jsonb with old PGroonga but the new PGroonga improves usability. You can do full text search from all texts in jsonb like you do from a text column:

-- For text column
-- For jsonb column

See &@~ operator for jsonb for details.

How to upgrade

This version is compatible with 1.0 or later. You can upgrade by steps in "Compatible case" in Upgrade document.


New PGroonga version has been released.

See also release note for all changes.

Try PGroonga when you want to perform fast full text search against all languages on PostgreSQL!


Groonga 7.0.4 has been released

Groonga 7.0.4 has been released!

How to install: Install


Here are important changes in this release:

  • Supported Debian 9 (stretch)
  • Added grndb log options
  • Improved query performance

Supported Debian 9 (stretch)

In this release, Debian 9 (stretch) has been supported!

Now install documentation is out for Debian 9 (stretch) users.

Added grndb log options

In this release, log options are supported for grndb.

grndb is a tool for maintenance Groonga database. It provides grndb check and grndb recover. But in the previous versions, grndb doesn't support logging options.

Use supported --log-level and --log-path option to save grndb logs.

Improved query performance

In this release, some query performance is improved. Here are some improved patterns.


    • Improved performance by reducing redundant process when accessing column data. Supported operators are ==, !=, <, >, <= and >=.
  • in_records()

    • Improved performance by reducing too many object creation. To avoid such a situation, implementation is switched from mruby to C.


See Release 7.0.4 2017-06-29 about detailed changes since 7.0.3.

Let's search by Groonga!


Groonga 7.0.3 has been released

Groonga 7.0.3 has been released!

How to install: Install


Here are important changes in this release:

  • [select] Add document about Full text search with specific index name
  • [load][dump] Supported Apache Arrow

[select] Add document about Full text search with specific index name

In this release, documentation about full text search with specific index name is added. For example, you can learn how to specify index name for --match_columns and what is better way to specify index name instead of data column name in this section.

[load][dump] Supported Apache Arrow

In this release, experimental API for Apache Arrow format has been supported.

As this is experimental feature, you can not use casually it right now, but sooner or later, Apache Arrow support will be improved and Groonga user can use this feature more easily.


See Release 7.0.3 2017-05-29 about detailed changes since 7.0.2.

Let's search by Groonga!