Mroonga blog

2021-04-02

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

Changes

The main changes are as follows.

Improvements

  • CentOS Added support for MariaDB 10.2.37, 10.3.28, 10.4.18, and 10.5.9.

  • CentOS Added support for Percona Server 5.7.33.

  • Added support for adding value with text in JSON format to reference vector columns.

Fixes

  • Fixed a bug that FOREIGN KEY constraint was not registered.

    • This bug had only occurred on MySQL 8.0.
  • Fixed a bug that DROP DATABASE had failed if a target database had FOREIGN KEY constraint.

  • Fixed a bug that DROP COLUMN had failed if a target table was referred to the other tables.

  • Fixed a build error when we built Mroonga with MariaDB 10.3.28, 10.4.18, or 10.5.9.

  • Fixed a bug that an update of Mroonga fails on MariaDB.

Conclusion

See Release 11.01 - 2021-04-02 about detailed changes since 11.00.

Let's search by Mroonga!

2021-02-09

Mroonga 11.00 has been released!

This is a major version up! But It keeps backward compatibility. You can upgrade to 11.00 without rebuilding database.

In this version, MySQL, MariaDB, or PerconaServer will be automatically restarted. Because Mroonga 11.00 requires Groonga 11.0.0 or later but it will not reloaded until MySQL, MariaDB, or PrerconaServer is restarted.

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

Changes

The main changes are as follows.

  • CentOS Dropped support for MySQL 5.6

    • Because it reached EOL at Feb 1, 2021.
  • CentOS Dropped support for Percona Server 5.6

  • Dropped support for MariaDB 10.1 on Ubuntu 18.04 LTS.

    • Because MariaDB 10.1 already has reached EOL in upstream.
  • Updated version of Groonga to 11.0.0 or later that Mroonga requires.

    • Because a high impact bug of index corruption is fixed in Groonga 11.0.0.

Conclusion

See Release 11.00 - 2021-02-09 about detailed changes since 10.11.

Let's search by Mroonga!

2021-01-29

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

Changes

The main changes are as follows.

  • Added support for lexicon_flags parameter.

    • We can add KEY_LARGE flag to a USING HASH (non full-text search index) index by this parameter.
  • CentOS Added support for MySQL 5.6.51, 5.7.33, and 8.0.23.

    • There are below restrictions in the MySQL8 package.

      • [Wrapper mode] Wrapper mode is not supported yet.
      • [Storage mode] JSON data type is not supported yet.
  • Optimizations Fixed a bug that the fast order limit optimization doen’t work when “WHERE COLUMN IN (SUBQUERY)” exists.

    • Fixed a bug that we can’t use in place ALTER TABLE when we modify the data type of a column that has any indexes.
    • This bug occur when we execute ALTER TABLE in ALGORITHM=INPLACE. Therefore, this bug doesn’t occur when we use ALTER TABLE in ALGORITHM=COPY.

Conclusion

See Release 10.11 - 2021-01-29 about detailed changes since 10.11.

Let's search by Mroonga!

2020-12-29

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

Changes

The main changes are as follows.

  • Storage mode Added support for customize table flags. [Gitter][Reported by Shinichi Takayanagi]

  • Ubuntu Added support for Ubuntu 20.10 (Groovy Gorilla).

  • CentOS Added support for Percona Server 8.0.22.

Conclusion

See Release 10.10 - 2020-12-29 about detailed changes since 10.10.

Let's search by Mroonga!

2020-12-04

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

Changes

The main changes are as follows.

  • CentOS Added support for MariaDB 10.2.36, 10.3.27, 10.4.17, and 10.5.8

  • CentOS Added support for Percona Server 5.6.50 and 5.7.32.

  • CentOS Added support for MySQL 5.6.50, 5.7.32, and 8.0.22.

    • There are below restrictions in the MySQL8 package.

  • Dropped support for MariaDB 10.1 except Ubuntu 18.04 LTS.

    • Because MariaDB 10.1 is EOL.
    • However, we have only supported MariaDB 10.1 for Ubintu 18.04 LTS

      • Because MariaDB 10.1 has supported yet on it.
  • Dropped support for CentOS 6.

    • Because CentOS 6 is EOL.
  • mroonga_snippet_html Added support for customizing normalizer.

    • We can use custom normalizer instead of the default normalizer(NromalizerAuto) by using table_name and index_name.

      • We specify target table name to table_name as below.

      • We specify index name that is specified on target table to index_name as below.

        SET NAMES utf8mb4;
        
        CREATE TABLE memos (
        content text,
        fulltext index content_index (content)
        COMMENT 'normalizer "NormalizerNFKC121(\'unify_kana\', true)"'
        ) DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
        
        SELECT mroonga_snippet_html('This is Mroonga(ムルンガ).',
        'memos' as table_name,
        'content_index' as index_name,
        'むるんが') as snippet;
        
        snippet
        <div class="snippet">This is Mroonga<span class="keyword">ムルンガ</span>.</div>
        
      • We can also use mixing search by query and search by keywords by this modification.

      • For example as below, we can highlight keywords that we both specify by AS query and AS snippet.

        SET NAMES utf8mb4;
        SELECT mroonga_snippet_html('Mroonga has two running modes.
        
        One is “storage mode”, that is the default mode, and we use Groonga for both storing data and searching. With this mode, you can have full benefits of Groonga described above, like fast data update, lock-free full text search and geolocation search. But it does not support transactions.
                 
        Another one is “wrapper mode”, that adds full text search function on other storage engines like MyISAM or InnoDB. With this mode, you can use Groonga’s fast full text search with having the benefits of the storage engine, ex. transaction in InnoDB. But you cannot have benefits from Groonga’s read-lock free characteristic. And you might have the performance bottle neck in the storage engine in updating data.',
        'lock storage' AS query,
        'update' AS snippet;
        
         snippet
         <div class="snippet"><span class="keyword">storage</span> mode, that is the default mode, and we use Groonga for both storing data and searching. With this mode, you can have full benefits of Groonga described above, like fast data <span class="keyword">update</span>, <span class="keyword">lock</span>-fr</div><div class="snippet">text search function on other <span class="keyword">storage</span> engines like MyISAM or InnoDB. With this mode, you can use Groongas fast full text search with having the benefits of the <span class="keyword">storage</span> engine, ex. transaction in In</div><div class="snippet">noDB. But you cannot have benefits from Groongas read-<span class="keyword">lock</span> free characteristic. And you might have the performance bottle neck in the <span class="keyword">storage</span> engine in updating data.</div>
        

Conclusion

See Release 10.09 - 2020-12-01 about detailed changes since 10.07.

Let's search by Mroonga!