Mroonga blog


Since mroonga 2.00 had been released, there were many shipped improvements and remarkable features for mroonga. So, it is a time to bump version to 3.00! :-)

Mroonga 3.00 has been released!

Mroonga 3.00 has been released!

Mroonga is a MySQL storage engine that supports fast fulltext search and geolocation search. It is CJK ready. It uses groonga as a storage and fulltext search engine.

How to install: Install

There are three topics for this release:

  • Supported Fedora 18
  • Supported MySQL 5.6.10
  • Supported MySQL compatible COLLATION

Supported Fedora 18

Fedora 18 had been released at Jan 15, 2013 at last. This release began to support Fedora 18.

See how to install mroonga on Fedora 18 about detail.

Supported MySQL 5.6.10

This release began to support MySQL 5.6.10. This is the latest GA release about MySQL.

Note that mroonga packages for MySQL 5.6.10 is available on CentOS 5 only. We recommend database dump/restore for upgrading MySQL.

If you want to use mroonga package with MySQL 5.6.10 on other platform, you may be able to use wing repository provided by wing.

Supported MySQL compatible COLLATION

This release began to support MySQL compatible COLLATION such as utf8_general_ci and utf8mb4_general_ci.

Install groonga-normalizer-mysql package if you want to use utf8_general_ci or utf8mb4_general_ci. (groonga-normalizer-mysql is installed with mroonga 3.00)

mroonga does not cover all COLLATION like MySQL does. It does normalize only. It delegate to sort the results by MySQL.

Thus, there are the case that grooga's normalized results does not match to MyISAM or InnoDB does.

In this release, you can use MySQL compatible COLLATION. For example, (U+0061 LATIN SMALL LETTER A) is regarded as same as not only (U+0041 LATIN CAPITAL LETTER A) but also (U+00E0 LATIN SMALL LETTER A WITH GRAVE) or (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE).

This is incompatible changes.

Compatibility problem:

  • MySQL compatible normalizer is applied to newly added table or column
  • groonga's normalizer(NormalizerAuto) is used for existent table columns

Note that using mroonga 3.00 with existent database, there may be used different normalizer for newly added column.

How to use same normalizer:

  • Use non utf8_general_ci COLLATION (unify groonga's normalizer) such as utf8_roman_ci:
> ALTER TABLE (table name) MODIFY (column definition) COLLATE 'utf8_roman_ci';

How to confirm COLLATION specific column's:

> SHOW FULL COLUMNS FROM (table name);  


  • Note that non utf8_general_ci COLLATION use groonga's normalizer
  • Don't use utf8_unicode_ci which will be supported in the future release(reserved)
  • Don't use utf8_bin if you want to normalize

If you want to install mroonga from source with MySQL compatible normalizer, please install groonga-normalizer-mysql package.


See Release 3.00 - 2013/02/09 about detailed changes since 2.10.

Let's search by mroonga!