お知らせ - 10系 — Mroonga vmrn_version documentation

本文へスキップ
`Ctrl`+`K`

# お知らせ - 10系

## 10.11リリース - 2021-01-29

### Improvements

- `lexicon_flags` パラメータをサポートしました。

  - このパラメータを使うことで、以下のように(全文検索インデックスではない)`USING HASH` なインデックスに `KEY_LARGE` フラグを追加できます。

        CREATE TABLE memos (
          id INT UNSIGNED PRIMARY KEY,
          title VARCHAR(64) NOT NULL,
          UNIQUE INDEX (title) USING HASH COMMENT 'lexicon_flags "KEY_LARGE"'
        ) DEFAULT CHARSET=utf8mb4;

- [CentOS] MySQL 5.6.51、5.7.33、MySQL 8.0.23をサポートしました。

  - MySQL 8.0 のパッケージには以下の制限があります。

    - [ラッパーモード] ラッパーモードは未対応です。

    - [ストレージモード] JSONデータ型は未対応です。

### Fixes

- [最適化] "WHERE COLUMN IN (SUBQUERY)" が存在する時、 "fast order limit" の最適化が効かない問題を修正しました。

- インデックスが付与されたカラムのデータ型を変更する時 インプレースの `ALTER TABLE` が使えない問題を修正しました。

  - この問題は、 `ALTER TABLE` を `ALGORITHM=INPLACE` で実行した時に発生します。したがって、 `ALTER TABLE` を `ALGORITHM=COPY` で実行した場合は、発生しません。

## 10.10リリース - 2020-12-29

### Improvements

- [ストレージモード] テーブルフラグのカスタマイズをサポートしました。[Gitter][Shinichi Takayanagiさんが報告]

  - 今までは、ストレージモードでは、テーブルフラグのカスタマイズをサポートしていませんでした。

  - このリリースから、以下のようにテーブルフラグのカスタマイズができます。

        CREATE TABLE terms (
          term VARCHAR(64) NOT NULL PRIMARY KEY
        ) COMMENT='flags "TABLE_HASH_KEY|KEY_LARGE"'
          DEFAULT CHARSET=utf8mb4;

  - カスタマイズ可能な項目については、以下のURLを参照してください。

    - https://groonga.org/ja/docs/reference/commands/table_create.html#flags

- [Ubuntu] Ubuntu 20.10 (Groovy Gorilla)をサポートしました。

- [CentOS] Percona Server 8.0.22をサポートしました。

### Thanks

- Shinichi Takayanagiさん

- pinpikokunさん [GitHub#373にてパッチ提供]

## 10.09リリース - 2020-12-04

### Improvements

- [CentOS] MariaDB 10.2.36、10.3.27、10.4.17、10.5.8をサポートしました。

- [CentOS] Percona Server 5.6.50、5.7.32、8.0.21をサポートしました。

- [CentOS] MySQL 5.6.50、5.7.32、MySQL 8.0.22をサポートしました。

  - MySQL 8.0 のパッケージには以下の制限があります。

    - [ラッパーモード] ラッパーモードは未対応です。

    - [ストレージモード] JSONデータ型は未対応です。

- Ubuntu 18.04 LTS以外のMariaDB 10.1のサポートをやめました。

  - MariaDB 10.1はEOLになったためです。

  - ただ、Ubuntu 18.04 LTS では、MariaDB10.1をサポートします。

    - MariaDB 10.1は、Ubuntu 18.04 LTSではまだサポートされているためです。

- CentOS 6のサポートをやめました。

  - CentOS 6はEOLになったためです。

- [mroonga_snippet_html()] ノーマライザーのカスタマイズをサポートしました。

  - `table_name` と `index_name` を使用することで、デフォルトのノーマライザー(NormalizerAuto)の代わりにカスタムのノーマライザーを使えます。

    - `table_name` には、以下のように、対象のテーブルの名前を指定します。

    - `index_name` には、以下のように、対象のテーブル上で指定されたインデックスの名前を指定します。

        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>

    - この変更によって、クエリーによる検索とキーワードによる検索を混在して使うことができます。

    - 例えば以下のように、`AS query` と `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 Groonga’s 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 Groonga’s 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>

## 10.07リリース - 2020-10-02

### Improvements

- [CentOS] MariaDB 10.5.5をサポートしました。

- カラム圧縮のテストで256byte以上の文字列を使うテストを追加しました。 [GitHub#350][KartikSonejiさんがパッチ提供]

### Thanks

- KartikSonejiさん

## 10.06リリース - 2020-09-02

### Improvements

注釈

「MariaDB 10.5.5をサポートしました。」 というニュースを削除しました。

当初、「MariaDB 10.5.5をサポートしました。」とアナウンスしましたが、これは誤りでした。Mroonga 10.06はMariaDB10.5でビルドできるようになりましたが、まだ動作しない箇所があります。

- [Ubuntu] Ubuntu 19.10 (Eoan Ermine) のサポートをやめました。

- [CentOS] Percona Server 8.0.20をサポートしました。

- [CentOS] MariaDB 10.1.46、10.2.33、10.3.24、10.4.14をサポートしました。

- Debian GNU/Linux へのインストール方法を変更しました。

  - `groonga-archive-keyring` の代わりに `groonga-apt-source` を使うように変更しました。

  - `lintian` コマンドが `/etc/apt/sources.lists.d/` 配下にファイルを置くパッケージは `apt-source` を使うよう推奨しているためです。

    - `lintian` コマンドはパッケージングに共通のエラーをチェックするためのコマンドです。

    - インストール方法についての詳細は、以下も参照してください。

      - [Debian GNU/Linux]

- [CentOS] Percona Server 5.7.31をサポートしました。

## 10.05リリース - 2020-07-29

### Improvements

- [CentOS] MySQL 5.6.49と5.7.31とMySQL 8.0.21をサポートしました。

  - MySQL 8.0 のパッケージには以下の制限があります。

    - [ラッパーモード] ラッパーモードは未対応です。

    - [ストレージモード] JSONデータ型は未対応です。

- [CentOS] Percona Server 5.6.49をサポートしました。

## 10.03リリース - 2020-05-29

### Improvements

- [Ubuntu] Ubuntu 20.04 (Focal Fossa)をサポートしました。

- [Ubuntu] Ubuntu 19.04 (Disco Dingo) のサポートをやめました。

- [CentOS] MariaDB 10.1.45、10.2.32、10.3.23、10.4.13をサポートしました。

- [CentOS] Percona Server 5.6.48、5.7.30をサポートしました。

- WindowsのMariaDB 10.1のサポートをやめました。

  - MariaDB 10.1はもうすぐEOLになるためです。

### Fixes

- [Ubuntu] Ubuntu 19.10 (Eoan Ermine)向けMroongaが提供されていなかった問題を修正しました。

## 10.02リリース - 2020-04-29

### Improvements

- `WITH_WEIGHT` フラグをサポートしました。

  - このフラグは10.0.2以降のGroongaが必要です。

  - このフラグを使用して以下のように重み付きベクターを挿入できます。

        CREATE TABLE tags (
          name VARCHAR(64) PRIMARY KEY
        ) DEFAULT CHARSET=utf8mb4;

        CREATE TABLE bugs (
          tags TEXT COMMENT 'flags "COLUMN_VECTOR|WITH_WEIGHT", type "tags"',
          FULLTEXT INDEX bugs_tags (tags) COMMENT 'table "tags", flags "WITH_WEIGHT"'
        ) DEFAULT CHARSET=utf8mb4;

        INSERT INTO bugs VALUES ('{"package": 100, "priority": 5}');

- CentOS7のMariaDB 5.5のサポートをやめました。

- [CentOS] MySQL 5.6.48, 5.7.30, 8.0.20をサポートしました。

## 10.01リリース - 2020-03-30

### Improvements

- [CentOS] Percona Server 5.7.29をサポートしました。

### Fixes

- 以下の条件を満たしたクエリーを送信した際に、Mroongaがクラッシュする問題を修正しました。 [GitHub#303] [pinpikokunさんが報告]

  - Mroongaの `ORDER_BY_LIMIT` の最適化が有効な時

    - この最適化の条件については、 https://mroonga.org/ja/docs/reference/optimizations.html#order-by-limit を参照してください。

  - Mroongaを使ったサブクエリーで `ORDER_BY_LIMIT` を使っていない時。

### Thanks

- pinpikokunさん