Mroonga blog

2017-08-29

Mroonga 7.06 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 7.06 has been released!

Changes

Here are changes in this release.

  • Generated Column has been supported

Generated Column has been supported

In this release, Generated Column has been supported!

Here is the sample schema to use generated column.

CREATE TABLE logs (
  id INT,
  record JSON,
  message VARCHAR(255) GENERATED ALWAYS AS (json_extract(`record`, '$.message')) STORED,
  FULLTEXT INDEX(message) comment 'tokenizer "TokenBigramSplitSymbolAlphaDigit"'
) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4;

As you can see, the partial value of record column is used as message column.

Then, you can do full text search against message column by the following query.

> SELECT * FROM logs WHERE MATCH(message) AGAINST("ar" IN BOOLEAN MODE);
+------+-----------------------------------------+-----------+
| id   | record                                  | message   |
+------+-----------------------------------------+-----------+
|    1 | {"level": "info", "message": "start"}   | "start"   |
|    2 | {"level": "info", "message": "restart"} | "restart" |
+------+-----------------------------------------+-----------+
2 rows in set (0.02 sec)

You can also define VIRTUAL without actual data column.

CREATE TABLE logs (
  id INT,
  record JSON,
  message VARCHAR(255) GENERATED ALWAYS AS (json_extract(`record`, '$.message')) VIRTUAL
) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4;

But note that FULLTEXT INDEX(message) is not supported yet.

Conclusion

See Release 7.06 - 2017-08-29 about detailed changes since 7.05.

Let's search by Mroonga!

2017-07-29

Mroonga 7.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 7.05 has been released!

Changes

Here are changes in this release.

  • Groonga query log has been supported
  • MariaDB 10.2.7 has been supported
  • Auto command syntax escape feature has been supported
  • Ubuntu 16.10 (Yekkety Yak) support has been dropped

Groonga query log has been supported

In this release, Groonga query log has been supported.

Use mroonga_query_log_file variable to use this feature.

mysql> SET GLOBAL mroonga_query_log_file = "/tmp/query.log";

It is useful to analyze query where is bottle neck in Groonga.

MariaDB 10.2.7 has been supported

In this release, MariaDB 10.2.7 has been supported.

Thanks Tomohiro 'Tomo-p' KATO for contributing to fix build error against MariaDB 10.2.7..

Auto command syntax escape feature has been supported

In this release, auto command syntax escape feature has been supported.

You can specify command name and its argument separately in mroonga_command.

Using new syntax, arguments are automatically escaped, so you don't need to consider what query is actually passed to Groonga layer.

SELECT mroonga_command('COMMAND_NAME',
                     'PARAMETER_NAME_1', 'PARAMETER_VALUE_1',
                     ...,
                     'PARAMETER_NAME_N', 'PARAMETER_VALUE_N');

Example:

SELECT mroonga_command('select',
                       'table', 'diaries',
                       'filter', 'title @ "Groonga"');

It is useful for active mroonga_command user.

Ubuntu 16.10 (Yekkety Yak) support has been dropped

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

Conclusion

See Release 7.05 - 2017-07-29 about detailed changes since 7.04.

Let's search by Mroonga!

2017-06-29

Mroonga 7.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 7.04 has been released!

Changes

Here are changes in this release.

  • Supported Debian 9 (stretch)

Supported Debian 9 (stretch)

In this release, Debian 9 (stretch) is supported!

Here is the Debian 9 specific install procedure: Install

Note that MariaDB is adopted as a MySQL variant since Debian 9.

Conclusion

See Release 7.04 - 2017-06-29 about detailed changes since 7.03.

Let's search by Mroonga!

2017-05-29

Mroonga 7.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 7.03 has been released!

Changes

Here are changes in this release.

  • Supported INDEX_MEDIUM and INDEX_SMALL flags
  • [CentOS] Supported recent Percona Server 5.6.36 and 5.7.18

Supported INDEX_MEDIUM and INDEX_SMALL flags

In this release, the two flags which is supported since Groonga 6.0.8 are also supported in Mroonga. This two flags are used to create compact indexes in contrast to traditional Mroonga indexes.

By using above two flags, you will be able to reduce memory consumption efficiently.

Here is the example how to use these flags.

CREATE TABLE diaries (
  id INT PRIMARY KEY AUTO_INCREMENT,
  content VARCHAR(255),
  FULLTEXT INDEX (content) COMMENT 'flags "INDEX_SMALL"'
) ENGINE = Mroonga DEFAULT CHARSET utf8;

Conclusion

See Release 7.03 - 2017-05-29 about detailed changes since 7.02.

Let's search by Mroonga!