Mroonga blog

2019-08-29

Mroonga 9.07 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.

Mroonga 9.07 has been released!

Changes

The main changes are as follows.

  • Added support for MariaDB 10.1.41, 10.2.26, 10.3.17, and 10.4.7.
  • Added support for Percona Server 5.6.45 and 5.7.27.
  • Dropped support for MariaDB 10.0.
  • Dropped support MariaDB on CentOS 6.
  • Added a install document for Debian 10(buster).
  • Added a document for mroonga_query_log_file.
  • Added a document about how to uninstall Mroonga.
  • Added a document about how to use regular expression search.

Conclusion

See Release 9.07 - 2019-08-29 about detailed changes since 9.05.

Let's search by Mroonga!

2019-07-30

Mroonga 9.05 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.

Mroonga 9.05 has been released!

Changes

The main changes are as follows.

  • Added support for MySQL 5.6.45, 5.7.27 and 8.0.17
  • Fixed an unique index update bug which causes duplicated key error

Note that if you already created an unique index, you must recreate target tables.

Added support for MySQL 5.6.45, 5.7.27 and 8.0.17

In this release, added support for MySQL 5.6.45, 5.7.27 and 8.0.17.

For MySQL 8.0, TIMESTAMP data type is supported. MySQL 8.0 support is still in experimental stage, so if you found a bug or suspicious behavior, please report to us!

Here is the documentation about "How to report a bug".

  • How to report a bug

    http://mroonga.org/docs/contribution/report.html

Fixed an unique index update bug which causes duplicated key error

In this release, an unique index update bug was fixed. This bug causes duplicated key error when the following conditions are met

  • An unique index is created against multiple column index
  • An partial unique key column is updated

For example, the following SQL can reproduce a bug.

MySQL [test]> CREATE TABLE fts_targets (
  ->   id int(11) NOT NULL AUTO_INCREMENT,
  ->   source_id int(11) NOT NULL,
  ->   source_type_id int(11) NOT NULL,
  ->   PRIMARY KEY (id),
  ->   -- Multiple column unique index
  ->   UNIQUE KEY (source_id, source_type_id)
  -> ) DEFAULT CHARSET=utf8mb4 ENGINE=Mroonga;
Query OK, 0 rows affected (0.027 sec)

MySQL [test]> INSERT INTO fts_targets (source_id, source_type_id) VALUES (10, 100);
Query OK, 1 row affected (0.006 sec)

MySQL [test]> UPDATE fts_targets SET source_id = 11 WHERE id = 1;
Query OK, 1 row affected (0.001 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MySQL [test]> INSERT INTO fts_targets (source_id, source_type_id) VALUES (10, 100);
ERROR 1062 (23000): Duplicate entry '10-100' for key 'source_id'

In above example, the old index entry was not deleted correctly, therefore duplicated key error was occurred.

In this case, you must recreate an target table because unique index may have garbage entries. We recommend to recreate an target table with dump and restore, or execute the following queries.

ALTER TABLE (TABLE_NAME) DISABLE KEYS;
ALTER TABLE (TABLE_NAME) FORCE;
ALTER TABLE (TABLE_NAME) ENABLE KEYS;

Conclusion

See Release 9.05 - 2019-07-30 about detailed changes since 9.04.

Let's search by Mroonga!

2019-06-29

Mroonga 9.04 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.

Mroonga 9.04 has been released!

Changes

The main changes are as follows.

  • Added support for MySQL 8 packages experimentally.

  • Fixed a crash bug with ((MATCH OR MATCH) AND (MATCH)) query.

Added support for MySQL 8 packages

In this release, Mroonga package which supports MySQL 8 are available on CentOS.

This is experimental, so if you found a bug or doubt behavior, please report to us!

Here is the documentation about "How to report a bug".

Here are already known issues about MySQL 8.0

Fixed a crash bug with ((MATCH OR MATCH) AND (MATCH)) query.

In this release, a crash bug was fixed. This crash bug was occurred when ((MATCH AGAINST (...) OR MATCH AGAINST(...)) AND (MATCH AGAINST(...))) was used in where clause.

Mroonga has condition push down feature (Optimization to process search condition at Groonga level rather than MySQL level). This bug was derived from incorrect handling of above query optimization.

Conclusion

See Release 9.04 - 2019-06-29 about detailed changes since 9.03.

Let's search by Mroonga!

2019-05-29

Mroonga 9.03 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.

Mroonga 9.03 has been released!

Changes

The main changes are as follows.

  • Added support for INDEX_LARGE flag.
  • Added support for latest MySQL/MariaDB/Percona Server.
  • Added support for MariaDB 10.1/10.2 windows packages again.

Added support for INDEX_LARGE flag

In this release, INDEX_LARGE flags is supported.

This flag is used to create index which supports large data. In this context, "large data" depends on its data. But there is a indicator for it - normally at least 10 millions records and targets are multiple columns or index table has tokenizer.

You can specify INDEX_FLAG in COMMENT.

CREATE TABLE memos (
  content VARCHAR(64) NOT NULL,
  KEY (content) COMMENT 'flags "INDEX_LARGE"'
) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4;

Note that INDEX_FLAG requires 2 times larger memory usage than the default index column.

Added support for latest MySQL/MariaDB/Percona Server

In this release, the following latest MySQL/MariaDB/Percona Server has been supported.

  • MySQL 5.6.44, 5.7.26
  • MariaDB 10.1.40.
  • MariaDB 10.2.24.
  • MariaDB 10.3.14, 10.3.15.
  • Percona Server 5.6.44.

Added support for MariaDB 10.1/10.2 windows packages again

In the previous version, we don't officially announced it yet. We began to provide not only MariaDB 10.3 bundled windows package, but also 10.1 and 10.2 package too.

If you use older version of MariaDB (10.1 or 10.2) bundled Mroonga, and not yet upgraded, it is a time to upgrade from it.

Conclusion

See Release 9.03 - 2019-05-29 about detailed changes since 9.01.

Let's search by Mroonga!

2019-03-29

Mroonga 9.01 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.

Mroonga 9.01 has been released!

Changes

The main changes are as follows.

  • Improved support for more table and comment parameter about tokenizer/nomalizer/indexes.
  • Added support for latest MariaDB/Percona Server.
  • Added support for building bundled MariaDB package on AppVeyor.

Improved support for table and comment parameter about tokenizer/nomalizer/indexes

In this release, tokenizer/nomalizer/indexes support is improved.

In storage mode, you can specify tokenizer options in COMMENT section.

CREATE TABLE foo (...) COMMENT='tokenizer "TokenNgram('n', 4)"'

Note that default_tokenizer is deprecated. use tokenizer instead.

You can also specify LEXICON index parameter.

FULLTEXT INDEX foo (bar) LEXICON='terms'

or

FULLTEXT INDEX foo (bar) COMMENT 'lexicon "terms"'

for MariaDB, TOKENIZER, NORMALIER and TOKEN_FILTERS table parameter has been supported.

CREATE TABLE foo (...) TOKENIZER='TokenNgram("n", 4)'
CREATE TABLE foo (...) NORMALIZER='NormalizerNFKC100("unify_kana", true)'
CREATE TABLE foo (...) TOKEN_FILTERS='TokenFilterNFKC100("unify_katakana_v_sounds", true)'

Added support for latest MariaDB/Percona Server

In this release, the following latest MariaDB/Percona Server has been supported.

  • Percona Server 5.7.25-28.
  • MariaDB 10.3.13.
  • MariaDB 10.2.23.

Added support for building bundled MariaDB package on AppVeyor

In the previous versions, we use AppVeyor just for testing build on Windows. So, release package for Windows had been built manually.

In this release, packages are also available on AppVeyor.

Mroonga package is also available as artifacts from:

Conclusion

See Release 9.01 - 2019-03-29 about detailed changes since 9.00.

Let's search by Mroonga!