お知らせ¶
13.00リリース - 2023-02-09¶
メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく13.00へアップグレードできます。
まずはじめに 13.00の主な変更点を紹介します。次に、Mroonga 12.00 から 12.12 までの変更点を紹介します。
13.00の新規機能と改良¶
注釈
現在、Percona Server向けMroonga 13.00のパッケージを提供していません。Percona Server向けパッケージのビルドに問題があるためです。この問題が解決したら、再度Percona Server向けパッケージを提供します。
改良¶
Mroonga 12.00から 12.12までの主な変更点¶
ハイライト¶
参照カウントモードをサポートしました。
この機能によりメモリー使用量を一定量に保つことができますが、パフォーマンスが悪化します。そのため、メモリー不足の場合には、この機能を使用する前に、メモリーを増強することを検討してください。
参照カウントモードは MySQLの table_open_cache とともに使用します。
MySQLは
table_open_cache
で指定した個数のテーブルをキャッシュしておくことができます。キャッシュされているテーブルはまだ使用中なので、Groongaのオブジェクトも解放されません。table_open_cache
で指定した個数よりも多いテーブルが開かれたとき、使用頻度が低いテーブルが閉じられます。参照カウントモードが有効なとき、そのタイミングでGroongaのオブジェクトも閉じられます。このようにして参照カウントモードではメモリー使用量を一定に保っています。
実際に使用する際には、ステータス変数の Open_tables の値とメモリー使用量を見ながら
table_open_cache
の値を調整することで、メモリー使用量とパフォーマンスのバランスを調整する必要があります。なぜなら、この機能はメモリー使用量を一定に保ちますが、その分パフォーマンスが悪化するためです。Open_tables
の確認方法は以下の通りです。SHOW GLOBAL STATUS LIKE 'Open_tables'; -- +---------------+-------+ -- | Variable_name | Value | -- +---------------+-------+ -- | Open_tables | 643 | -- +---------------+-------+
通常は
Open_tables
よりtable_open_cache
を大きくして常に使っているすべてテーブルをキャッシュします。しかし、メモリーに余裕がない環境では一部の使用頻度の低いテーブルをキャッシュから落として解放することでメモリー使用量を削減します。使用頻度の低いテーブルをキャッシュから落とすにはOpen_tables
よりtable_open_cache
を小さくします。table_open_cache
を小さくすればするほど、より多くのテーブルがキャッシュから落ちます。その分メモリー使用量は減りますが、テーブルの開き直しが必要になるためパフォーマンスは悪化します。table_open_cache
を小さくすればするほど、パフォーマンスが悪化するので、小さくするのはメモリー使用量が許容範囲内に収まる程度までにしておきます。参照カウントモードを有効にするには、my.cnfに以下の値を設定します。
loose-mroonga-enable-reference-count = ON
注釈
MySQL起動後に変数で指定しても参照カウントモードは有効になりません。my.cnfで指定してください。
SET GLOBAL mroonga_enable_reference_count = ON
クエリーのタイムアウトパラメータをサポートしました。 [GitHub #344] [かずひこさんが報告]
MySQL/MariaDB はクエリーの実行時間がタイムアウトパラメータで指定した時間を超過した場合、クエリーを中断することができます。タイムアウトパラメータは、MySQL では
MAX_EXECUTION_TIME
、MariaDBではmax_statement_time
です。しかし、MySQL/MariaDBがクエリーを中断し結果を返した後も、Mroongaは実行中のクエリーを中断していませんでした。そのため、クエリーが大量に結果にマッチする場合には、MySQL/MariaDBがクエリーを中断した後もメモリやCPUのリソースを消費し続けていました。
本バージョンから、Mroongaは指定された時間でクエリーを中断できるようになり、タイムアウトパラメータが正しく動作するようになりました。そのため、クエリーを中断した後もメモリやCPUリソースを消費し続ける問題も発生しなくなりました。
この機能の使い方は以下の通りです。
以下はMySQLの場合の例です。
CREATE TABLE diaries( title TEXT FULLTEXT INDEX (title) ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow."); INSERT INTO diaries (title) VALUES ("It'll rain tomorrow"); SELECT /*+ MAX_EXECUTION_TIME(1) */ title FROM diaries WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
以下はMariaDBの場合の例です。
CREATE TABLE diaries( title TEXT FULLTEXT INDEX (title) ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow."); INSERT INTO diaries (title) VALUES ("It'll rain tomorrow"); SET STATEMENT max_statement_time = 0.001 FOR SELECT title FROM diaries WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
この機能は、
mroonga_command()
でも使えます。install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]
install.sqlが壊れていたことが原因です。この問題は、 Mroonga 12.06以降で発生していました。
全文検索でメモリーリークする問題を修正しました。[OHTSUKA SoushiさんとMitsuo Yoshidaさんの報告]
この問題は、 order limit の最適化 が使われた時に発生します。ただし、MariaDBを使っている場合はこの最適化を使っていなくても発生します。
この問題は、 Mroonga 11.03以降で発生していました。
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
概要¶
改良¶
[AlmaLinux] AlmaLinux 9 を新しくサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.32をサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 5.7.41をサポートしました。
複合主キーを設定しているテーブルで通常のカラムの更新ができるようになりました。 [GitHub#592] [handmoundさんが報告]
[Amazon Linux] MariaDB 10.5.10-2.amzn2.0.2をサポートしました。
[サーバ変数の一覧] 新しいサーバーステータス変数
libgroonga_support_mecab
を追加しました。[Debian GNU/Linux] MariaDB 10.5.18をサポートしました。
[CentOS][AlmaLinux] MariaDB 10.3.37、10.4.27、10.5.18、10.6.11、10.7.7、10.8.6、10.9.4をサポートしました。 [GitHub #564][Josep Sanzさんの報告][かとうさんがパッチ提供]
[CentOS] Percona Server 5.7.40-43をサポートしました。
[Windows] MariaDB 10.7、10.8、10.9をサポートしました。
[Windows] 32bitバージョンのサポートをやめました。
[mroonga_highlight_html()] 新しいパラメータ
open_tag
とclose_tag
を追加しました。 [GitHub #537][ishitakaさんによる報告]参照カウントモードをサポートしました。
[CentOS][AlmaLinux] MariaDB 10.6.10, 10.7.6, 10.8.5をサポートしました。
[Oracle Linux] MySQL 8.0.30をサポートしました。
[CentOS] MySQL 5.7.39をサポートしました。
[Debian GNU/Linux] Debian 10 (buster)のサポートをやめました。
MroongaをMySQLに登録する際に、update.sql を実行する必要がないように変更しました。[GitHub #509][Jérome Perrin さんの報告]
修正¶
[mroonga_highlight_html()]
mroonga_highlight_html
をAS query
と一緒に使った際にメモリーリークする問題を修正しました。Windows版MariaDB 10.9以降のMroongaを使った時にMeCabの初期化に失敗する問題を修正しました。
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]
MySQL 8.0 以上を使用しているとき、
mroonga_command()
が16進数ダンプで結果を返す問題を修正しました。[AlmaLinux] AlmaLinux 8 向けMroongaのインストール手順を修正しました。[Gitter/ja:62fe4ca5b16e8236e3ef225c][handmoundさんの報告]
Mroongaのアップデートに失敗することがある問題を修正しました。 [groonga-dev,04982, groonga-dev,04987][Mitsuo YoshidaさんとOHTSUKA Soushiさんの報告]
MariaDB 10.5.14 上でMroongaがインデックスの作成に失敗することがある問題を修正しました。 [GitHub clear-code/redmine_full_text_search#103][wateさんの報告]
全文検索でメモリーリークする問題を修正しました。[OHTSUKA SoushiさんとMitsuo Yoshidaさんの報告]
感謝¶
handmoundさん
Josep Sanzさん
かとうさん
ishitakaさん
かずひこさん
Jérome Perrinさん
Mitsuo Yoshidaさん
OHTSUKA Soushiさん
wateさん
12.12リリース - 2023-01-29¶
改良¶
[AlmaLinux] AlmaLinux 9 を新しくサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.32をサポートしました。
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 5.7.41をサポートしました。
複合主キーを設定しているテーブルで通常のカラムの更新ができるようになりました。 [GitHub#592] [handmoundさんが報告]
以下のようにMroongaストレージエンジンを使ったテーブルに複合主キーを設定しているときは、通常のカラムを更新できませんでした。
CREATE TABLE scores ( name char(30) NOT NULL, score int NOT NULL, PRIMARY KEY (name, score), note char(30), FULLTEXT INDEX search_note_idx (note) ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO scores (name, score) VALUES ("Taro Yamada", 29); UPDATE scores SET note = "Note" WHERE name = "Taro Yamada" AND score = 29; ERROR 1265 (01000): data truncated for primary key column: <name>
このエラーはMariaDB向けMroongaでは発生しません。
感謝¶
handmoundさん
12.11リリース - 2020-01-06¶
改良¶
[Amazon Linux] MariaDB 10.5.10-2.amzn2.0.2をサポートしました。
[サーバ変数の一覧] 新しいサーバーステータス変数
libgroonga_support_mecab
を追加しました。これはGroongaがTokenMecabをサポートしている時のみtrueです。
[Debian GNU/Linux] MariaDB 10.5.18をサポートしました。
修正¶
[mroonga_highlight_html()]
mroonga_highlight_html
をAS query
と一緒に使った際にメモリーリークする問題を修正しました。Windows版MariaDB 10.9以降のMroongaを使った時にMeCabの初期化に失敗する問題を修正しました。
12.10リリース - 2022-11-29¶
改良¶
[CentOS][AlmaLinux] MariaDB 10.3.37、10.4.27、10.5.18、10.6.11、10.7.7、10.8.6、10.9.4をサポートしました。 [GitHub #564][Josep Sanzさんの報告][かとうさんがパッチ提供]
[CentOS] Percona Server 5.7.40-43をサポートしました。
[Windows] MariaDB 10.7、10.8、10.9をサポートしました。
[Windows] 32bitバージョンのサポートをやめました。
最近のMariaDBは32bitのWindowsでビルドできず、32bit向けの公式パッケージも存在しないためです。
[mroonga_highlight_html()] 新しいパラメータ
open_tag
とclose_tag
を追加しました。 [GitHub #537][ishitakaさんによる報告]ハイライトに使うタグを
open_tag
とclose_tag
で指定できるようになりました。今までは固定で
<span class="keyword">...</span>
というタグを使用しており、class
の変更や、別のタグが指定できず不便でした。今回からタグを指定できるようになったので、<mark>...</mark>
などのハイライト用のタグも使えるようになって便利になりました。SELECT mroonga_highlight_html('Mroonga is the Groonga based storage engine.', 'groonga', '<mark>' AS open_tag, '</mark>' AS close_tag) AS highlighted; -- +-----------------------------------------------------------+ -- | highlighted | -- +-----------------------------------------------------------+ -- | Mroonga is the <mark>Groonga</mark> based storage engine. | -- +-----------------------------------------------------------+
詳細は mroonga_highlight_html() を参照してください。
参照カウントモードをサポートしました。
この機能によりメモリー使用量を一定量に保つことができますが、パフォーマンスが悪化します。そのため、メモリー不足の場合には、この機能を使用する前に、メモリーを増強することを検討してください。
参照カウントモードは MySQLの table_open_cache とともに使用します。
MySQLは
table_open_cache
で指定した個数のテーブルをキャッシュしておくことができます。キャッシュされているテーブルはまだ使用中なので、Groongaのオブジェクトも解放されません。table_open_cache
で指定した個数よりも多いテーブルが開かれたとき、使用頻度が低いテーブルが閉じられます。参照カウントモードが有効なとき、そのタイミングでGroongaのオブジェクトも閉じられます。このようにして参照カウントモードではメモリー使用量を一定に保っています。
実際に使用する際には、ステータス変数の Open_tables の値とメモリー使用量を見ながら
table_open_cache
の値を調整することで、メモリー使用量とパフォーマンスのバランスを調整する必要があります。なぜなら、この機能はメモリー使用量を一定に保ちますが、その分パフォーマンスが悪化するためです。Open_tables
の確認方法は以下の通りです。SHOW GLOBAL STATUS LIKE 'Open_tables'; -- +---------------+-------+ -- | Variable_name | Value | -- +---------------+-------+ -- | Open_tables | 643 | -- +---------------+-------+
通常は
Open_tables
よりtable_open_cache
を大きくして常に使っているすべてテーブルをキャッシュします。しかし、メモリーに余裕がない環境では一部の使用頻度の低いテーブルをキャッシュから落として解放することでメモリー使用量を削減します。使用頻度の低いテーブルをキャッシュから落とすにはOpen_tables
よりtable_open_cache
を小さくします。table_open_cache
を小さくすればするほど、より多くのテーブルがキャッシュから落ちます。その分メモリー使用量は減りますが、テーブルの開き直しが必要になるためパフォーマンスは悪化します。table_open_cache
を小さくすればするほど、パフォーマンスが悪化するので、小さくするのはメモリー使用量が許容範囲内に収まる程度までにしておきます。参照カウントモードを有効にするには、my.cnfに以下の値を設定します。
loose-mroonga-enable-reference-count = ON
注釈
MySQL起動後に変数で指定しても参照カウントモードは有効になりません。my.cnfで指定してください。
SET GLOBAL mroonga_enable_reference_count = ON
修正¶
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
Mroonga 12.09 にて groonga-normalizer-mysql をバンドルするよう修正したとアナウンスしましたが、修正されていませんでした。
感謝¶
Josep Sanzさん
かとうさん
ishitakaさん
12.09リリース - 2022-10-28¶
改良¶
[CentOS][AlmaLinux][Debian GNU/Linux][Ubuntu] MySQL 8.0.31をサポートしました。
[Ubuntu] Ubuntu 22.04 (Jammy Jellyfish) の MariaDB 10.6 をサポートしました。
クエリーのタイムアウトパラメータをサポートしました。 [GitHub #344] [かずひこさんが報告]
MySQL/MariaDB はクエリーの実行時間がタイムアウトパラメータで指定した時間を超過した場合、クエリーを中断することができます。タイムアウトパラメータは、MySQL では
MAX_EXECUTION_TIME
、MariaDBではmax_statement_time
です。しかし、MySQL/MariaDBがクエリーを中断し結果を返した後も、Mroongaは実行中のクエリーを中断していませんでした。そのため、クエリーが大量に結果にマッチする場合には、MySQL/MariaDBがクエリーを中断した後もメモリやCPUのリソースを消費し続けていました。
本バージョンから、Mroongaは指定された時間でクエリーを中断できるようになり、タイムアウトパラメータが正しく動作するようになりました。そのため、クエリーを中断した後もメモリやCPUリソースを消費し続ける問題も発生しなくなりました。
この機能の使い方は以下の通りです。
以下はMySQLの場合の例です。
CREATE TABLE diaries( title TEXT FULLTEXT INDEX (title) ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow."); INSERT INTO diaries (title) VALUES ("It'll rain tomorrow"); SELECT /*+ MAX_EXECUTION_TIME(1) */ title FROM diaries WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
以下はMariaDBの場合の例です。
CREATE TABLE diaries( title TEXT FULLTEXT INDEX (title) ) ENGINE = Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO diaries (title) VALUES ("It'll be fine tomorrow."); INSERT INTO diaries (title) VALUES ("It'll rain tomorrow"); SET STATEMENT max_statement_time = 0.001 FOR SELECT title FROM diaries WHERE MATCH(title) AGAINST("+fine" IN BOOLEAN MODE);
この機能は、
mroonga_command()
でも使えます。
修正¶
Windows版のMroongaに groonga-normalizer-mysql をバンドルしていなかった問題を修正しました。
このバグは、 Mroonga 12.02から存在していました。したがって、Windows版のMroonga 12.02 から 12.08 では groonga-normalizer-mysql を使えません。
感謝¶
かずひこさん
12.08リリース - 2022-10-03¶
[CentOS][AlmaLinux] MariaDB 10.6.10, 10.7.6, 10.8.5をサポートしました。
[Oracle Linux] MySQL 8.0.30をサポートしました。
12.07リリース - 2022-08-30¶
改良¶
[CentOS][AlmaLinux] MariaDB 10.3.36、10.4.26、10.5.17、10.6.9、10.7.5、10.8.4をサポートしました。
[CentOS][AlmaLinux] Percona Server 8.0.29-21をサポートしました。
注釈
Percona Server 8.0.29で使用しているMySQL 8.0.29には重大な問題があります。そのため、このバージョンの使用は推奨しません。
問題に関する詳細は、 MySQL 8.0.29 リリースノート を参照してください。
修正¶
install.sqlを使用したインストールおよびアップグレードに失敗する問題を修正しました。[GitHub #525][Tomohiro KATOさんの報告][Jérome Perrinさんがパッチ提供]
install.sqlが壊れていたことが原因です。この問題は、 Mroonga 12.06以降で発生していました。
MySQL 8.0 以上を使用しているとき、
mroonga_command()
が16進数ダンプで結果を返す問題を修正しました。このバージョンから、
mroonga_command()
が正しい文字コードで結果を返すようになります。[AlmaLinux] AlmaLinux 8 向けMroongaのインストール手順を修正しました。[Gitter/ja:62fe4ca5b16e8236e3ef225c][handmoundさんの報告]
感謝¶
handmoundさん
Jérome Perrinさん
かとうさん
12.06リリース - 2022-08-04¶
改良¶
[CentOS] MySQL 5.7.39をサポートしました。
[Debian GNU/Linux] Debian 10 (buster)のサポートをやめました。
MroongaをMySQLに登録する際に、update.sql を実行する必要がないように変更しました。[GitHub #509][Jérome Perrin さんの報告]
Mroonga 12.04から、MroongaをMySQLに登録するには、install.sqlとupdate.sqlの両方を実行する必要がありました。
% mysql -u root < /usr/share/mroonga/install.sql % mysql -u root < /usr/share/mroonga/update.sql
この改善では、Mroonga 12.04 より前と同じように、install.sqlを実行するだけで良いように変更しています。
% mysql -u root < /usr/share/mroonga/install.sql
感謝¶
Jérome Perrinさん
12.04リリース - 2022-06-01¶
改良¶
[サーバ変数の一覧] 新しいサーバー変数
Mroonga_memory_map_size
を追加しました。以下のように、Mroongaのメモリーマップサイズの合計を取得できます。
mysql> SHOW STATUS LIKE 'Mroonga_memory_map_size'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Mroonga_memory_map_size | 83406848 | +-------------------------+----------+ 1 row in set (0.00 sec)
Windowsでは、Mroogaが物理メモリーとスワップ領域を使い果たした場合、それ以上メモリーをマップすることができません。そのため、この値を監視することで、メモリーが十分でない環境でもメモリーマップサイズを適切にコントロールできます。
[CentOS][AlmaLinux] MariaDB 10.2.44, 10.3.35、10.4.25、10.5.16、10.6.8、10.7.4をサポートしました。
修正¶
Mroongaのアップデートに失敗することがある問題を修正しました。 [groonga-dev,04982, groonga-dev,04987][Mitsuo YoshidaさんとOHTSUKA Soushiさんの報告]
この問題が発生した場合、"apt update"等でMroongaを更新した後、Mroongaが無効になります。その場合、以下の手順でMroongaを手動でインストールしてください。
% mysql -u root < /usr/share/mroonga/install.sql
感謝¶
Mitsuo Yoshidaさん
OHTSUKA Soushiさん
12.03リリース - 2022-05-06¶
改良¶
修正¶
MariaDB 10.5.14 上でMroongaがインデックスの作成に失敗することがある問題を修正しました。 [GitHub clear-code/redmine_full_text_search#103][wateさんの報告]
全文検索でメモリーリークする問題を修正しました。[OHTSUKA SoushiさんとMitsuo Yoshidaさんの報告]
この問題は、 order limit の最適化 が使われた時に発生します。ただし、MariaDBを使っている場合はこの最適化を使っていなくても発生します。
この問題は、 Mroonga 11.03以降で発生していました。
感謝¶
wateさん
OHTSUKA Soushiさん
Mitsuo Yoshidaさん
12.02リリース - 2022-03-29¶
改良¶
MySQL 8.0以降でラッパーモードのサポートをやめました。
サーバー変数を使って、バックトレースを無効にできるようになりました。
"SET GLOBAL mroonga_enable_back_trace = false;" とすることで、バックトレースを無効にできます。
重み付きベクターの重みに
float32
型を追加しました。float32
で重みを格納できます。この機能を使うには、カラムを定義する時にWEIGHT_FLOAT32
フラグを追加する必要があります。[CentOS][AlmaLinux] MariaDB 10.3.34、10.4.24、10.5.15、10.6.7、10.7.3をサポートしました。
[CentOS] MariaDB 10.2.43をサポートしました。
MISSING_*
とINVALID_*
フラグをサポートしました。これらのフラグの詳細は、 https://groonga.org/ja/docs/news.html#release-12-0-2 を参照してください。
12.00リリース - 2022-02-09¶
メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく12.00へアップグレードできます。
まずはじめに、Mroonga 11.00から11.13までの変更点を紹介します。次に、12.00の主な変更点を紹介します。
Mroonga 11.00から 11.13までの主な変更点¶
新規機能と改良¶
以下のようにパッケージ名を変更しました。
mariadb-server-10.x-mroonga
->mariadb-10.x-mroonga
mysql-server-5.x-mroonga
->mysql-community-5.x-mroonga
mysql-server-8.x-mroonga
->mysql-community-8.x-mroonga
percona-server-5x-mroonga
->percona-server-5.x-mroonga
percona-server-8x-mroonga
->percona-server-8.x-mroonga
警告
パッケージ名を変更しています。この変更の影響でこのバージョンにアップグレード後、Mroongaが無効になることがあります。このバージョンにアップグレードする場合、以下の点を必ず確認してください。
アップグレード後にMroongaが無効だった場合は、Mroongaを手動でインストールし直す必要があります。Mroongaの手動インストール及び、Mroongaが有効かどうかの確認については、以下のURLを参照してください。
Mroonga 11.03をまたいでMroongaをアップグレードする場合は、この現象が発生するので、注意してください。
このバージョンにアップグレード後に、Mroongaは有効だがバージョンが古いという場合は、MySQL、MariaDB、PerconaServerを再起動する必要があります。Mroongaのバージョンは以下のコマンドで確認できます。
SHOW VARIABLES LIKE 'mroonga_version';
[mroonga_snippet_html()]
mroonga_snippet_html()
でカスタマイズしたノーマライザーをサポートしました。この機能によって、以下のように
mroonga_snippet_html()
でカスタマイズしたノーマライザーを使えます。CREATE TABLE terms ( term VARCHAR(64) NOT NULL PRIMARY KEY ) COMMENT='normalizer "NormalizerNFKC130(''unify_kana'', true)"' DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; SELECT mroonga_snippet_html('これはMroonga(ムルンガ)です。', 'terms' as lexicon_name, 'むるんが') as snippet; snippet <div class="snippet">これはMroonga(<span class="keyword">ムルンガ</span>)です。</div>
[サーバ変数の一覧]
mroonga_enable_operations_recording
をデフォルトで無効にしました。mroonga_enable_operations_recording
自動リカバリーのために操作の記録を有効にするかどうかを決めるものです。この操作記録はMroongaがクラッシュしたときに自動的にリカバリーするためのものです。通常、Mroonga内にロックが残留している場合、INSERT/DELETE/UPDATEは実行できませんが、
mroonga_enable_operations_recording
が有効な場合、INSERT/DELETE/UPDATEに加えてSELECTも実行出来ないことがあります。自動リカバリーがロックの残留によって、ブロックされるためです。したがって、このバージョンから、デフォルト値を
OFF
にしました。ISERT/DELETE/UPDATE は、ロックの残留によって変わらずブロックされますが、操作記録を無効にすることで、SELECTは動作する可能性があります。残留したロックに対する正しい対処は以下の通りです。
修正¶
MySQL/MariaDBのアップグレード後にクラッシュすることがある問題を修正しました。
MySQL/MariaDB をアップグレード後に、
SELECT ... MATCH AGAINST
を実行するとMroongaがクラッシュすることがあります。
WHERE句に "WHERE primary_key IN ("")" と指定した際にMroongaが誤ったレコードを返すことがある問題を修正しました。
詳細は、 release 11.07 を参照してください。
[最適化] Mroongaが行カウントの最適化を誤って適用する問題を修正しました。
詳細は、 release 11.10 を参照してください。
MySQL 5.7で作成されたDBをMySQL 8.0にアップグレードすると、Mroongaがクラッシュする問題を修正しました。
緯度と経度を逆に保存していた問題を修正しました。
警告
この修正によって、後方互換性が壊れます。
GEOMETRY
型を使用しているユーザーは、Mroonga 11.03にアップグレードする前に現在のデータを保存し、アップグレード後に保存したデータをリストアする必要があります。 データのダンプ/リストアには、以下の方法が使えます。mysqldump
アップグレード前に
ALTER TABLE ENGINE=InnoDB
を実行し、アップグレード後にALTER TABLE ENGINE=Mroonga
を実行する。
この修正を適用しない場合、
INSERT/UPDATE/SELECT/SELECT
はうまく動作しますが、データはGroongaが誤った(緯度と経度はGroonga内で逆にされます)保存をします。そのため、 空間データに対する、mroonga_command('select ...')
は動作しません。外部キー制約が登録されない問題を修正しました。
この問題は MySQL8.0 でのみ発生します。
詳細は、 release 11.01 を参照してください。
対象のデータベースに外部キー制約があると、
DROP DATABASE
に失敗する問題を修正しました。詳細は、 release 11.01 を参照してください。
対象のテーブルが別のテーブルから参照されていると、
DROP COLUMN
に失敗する問題を修正しました。詳細は、 release 11.01 を参照してください。
MariaDBのMroongaでアップデートに失敗する問題を修正しました。
新しくサポートしたOS¶
[Debian GNU/Linux] Debian 11 (bullseye)をサポートしました。
[AlmaLinux] AlmaLinux 8 をサポートしました。
サポートをやめたOS¶
感謝¶
shibanao4870さん
Marc Laporteさん
santalexさん
Josep Sanzさん
かとうさん
Katsuhito Watanabeさん
kenichi arimotoさん
Vincent Pelletierさん
Kosuke Yamashitaさん
ひじーさん
12.00の主な変更点は以下の通りです。
改良¶
[Ubuntu] Ubuntuの mysql-server パッケージの最新バージョンをサポートしました。
以下のバージョンをサポートしました。
Ubuntu 18.04 LTS (bionic) mysql-server (5.7.37-0ubuntu0.18.04.1)
Ubuntu 20.04 LTS (focal) mysql-server (8.0.28-0ubuntu0.20.04.3)
Ubuntu 21.10 LTS (impish) mysql-server (8.0.28-0ubuntu0.21.10.3)
[CentOS] MariaDB 10.2.42、10.3.33、10.4.23、10.5.14、10.6.6をサポートしました。
[AlmaLinux] MariaDB 10.3.33、10.4.23、10.5.14、10.6.6をサポートしました。
11.13リリース - 2022-01-29¶
改良¶
11.11リリース - 2021-12-29¶
改良¶
[CentOS] CentOS 8のサポートをやめました。
CentOS 8は、2021年12月31日でEOLとなるためです。
修正¶
感謝¶
shibanao4870さん
Marc Laporteさん
santalexさん
11.10リリース - 2021-11-29¶
改良¶
[AlmaLinux] AlmaLinux 8 をサポートしました。
修正¶
[CentOS] MariaDB 10.6向けMroongaを提供していなかった問題を修正しました。
[最適化] Mroongaが行カウントの最適化を誤って適用する問題を修正しました。[MDEV-16922][Josep Sanzさんの報告]
通常、Mroongaは、
SELECT
がCOUNT(*)
だけを取得し、WHERE
の条件がインデックスだけで処理できる時に、行カウントの最適化を適用します。しかし、以下のケースのように
WHERE
の条件がインデックスだけで処理できない場合でも、Mroongaは、行カウントの最適化を適用していました。結果として、
SELECT COUNT(*) WHERE ...
の結果が間違っていました。CREATE TABLE roles ( id INT ); INSERT INTO roles VALUES (1), (2), (3), (4), (5); CREATE TABLE users ( id INT, role_id INT, INDEX (role_id) ); INSERT INTO users VALUES (10, 1); INSERT INTO users VALUES (11, 2); INSERT INTO users VALUES (13, 3); INSERT INTO users VALUES (14, 4); INSERT INTO users VALUES (15, 5); INSERT INTO users VALUES (20, 1); INSERT INTO users VALUES (21, 2); INSERT INTO users VALUES (23, 3); INSERT INTO users VALUES (24, 4); INSERT INTO users VALUES (25, 5); SELECT COUNT(*) FROM ( SELECT roles.id FROM roles LEFT JOIN users ON users.id <= 100 AND users.role_id = roles.id ) roles_users;
Mroongaが 'STRING_FIELD =' のコンディションプッシュダウンで適切なエンコーディングを設定しない問題を修正しました。[groonga-dev,04913][Tomohiro 'Tomo-p' KATOさんの報告]
以下ケースでは、 Mroongaが 'STRING_FIELD =' の条件をコンディションプッシュダウンしますが、この時、Mroongaは適切なエンコーディングを検索キーワードに設定しません。結果として、Mroongaは検索キーワードのノーマライズに失敗します。
CREATE TABLE memos ( id INT PRIMARY KEY, title TEXT, INDEX (title) ) ENGINE=Mroonga DEFAULT CHARSET=utf8mb4; INSERT INTO memos VALUES (1, 'Groonga'); INSERT INTO memos VALUES (2, 'Mroonga'); SELECT * FROM memos WHERE title = 'mroonga' ORDER BY id;
感謝¶
Josep Sanzさん
かとうさん
11.09リリース - 2021-11-04¶
改良¶
11.08リリース - 2021-10-06¶
修正¶
MySQL 5.7で作成されたDBをMySQL 8.0にアップグレードすると、Mroongaがクラッシュする問題を修正しました。
11.07リリース - 2021-09-29¶
警告
Mroongaには、MySQL 5.7で作成されたDBをMySQL 8.0にアップグレードすると、Mroongaがクラッシュする問題がありました。
この問題は、Mroonga 11.08で修正されています。MySQL 8.0 より前のバージョンでMroongaを使用しているユーザーは、Mroonga 11.08以降を使うことを強くおすすめします。
改良¶
[Ubuntu] Ubuntu 20.04 (Focal Fossa) の MySQL 8.0 をサポートしました。
[mroonga_snippet_html()] ノーマライザーのカスタマイズに対応しました。
この機能によって、以下のように
mroonga_snippet_html()
でカスタマイズしたノーマライザーを使えます。CREATE TABLE terms ( term VARCHAR(64) NOT NULL PRIMARY KEY ) COMMENT='normalizer "NormalizerNFKC130(''unify_kana'', true)"' DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; SELECT mroonga_snippet_html('これはMroonga(ムルンガ)です。', 'terms' as lexicon_name, 'むるんが') as snippet; snippet <div class="snippet">これはMroonga(<span class="keyword">ムルンガ</span>)です。</div>
ベクターカラムの値をバイナリーではなくテキストとして出力できるようにしました。
この機能によって、ベクターカラムの値をダンプするのに、
mysqldump
を使えます。
存在しないテーブルを削除した際に、 .mrn ファイルを作らないようにしました。 [groonga-dev: 04893][kenichi arimotoさんの報告]
ベクターの要素に対して W プラグマを使えるようにしました。
この機能によって、ベクターの要素に重みをセットできますが、この場合、Mroongaは指定したセクションのみ検索します。通常のマルチカラムインデックスでは、Mroongaは指定していないセクションもデフォルトの重みで検索します。
修正¶
WHERE句に "WHERE primary_key IN ("")" と指定した際にMroongaが誤ったレコードを返すことがある問題を修正しました。 [groonga-dev,04855][Katsuhito Watanabeさんが報告]
例えば、以下ようなケースでMroongaが誤ったレコードを返すことがあります。
CREATE TABLE ids ( id varchar(7) PRIMARY KEY, parent_id varchar(7) )ENGINE=Mroonga DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; INSERT INTO ids VALUES("abcdefg", ""); INSERT INTO ids VALUES("hijklmn", ""); INSERT INTO ids VALUES("opqrstu", "hijklmn"); SELECT * FROM ids WHERE id IN (SELECT parent_id FROM ids); +---------+-----------+ | id | parent_id | +---------+-----------+ | abcdefg | | | hijklmn | | +---------+-----------+ 2 rows in set (0.00 sec)
感謝¶
Katsuhito Watanabeさん
kenichi arimotoさん
11.06リリース - 2021-08-29¶
改良¶
[CentOS] MariaDB 10.2.40、10.3.31、10.4.21、10.5.12をサポートしました。
[CentOS] MariaDB 10.6.4をサポートしました。 [GitHub#434][Tomohiro KATOさんがパッチ提供]
[CentOS] Percona Server 5.7.35をサポートしました。
[Debian GNU/Linux] Debian 11 (bullseye)をサポートしました。
感謝¶
かとうさん
11.05リリース - 2021-07-30¶
改良¶
修正¶
MySQL/MariaDBのアップグレード後にクラッシュすることがある問題を修正しました。[GitHub#423][Vincent Pelletierさんの報告]
MySQL/MariaDB をアップグレード後に、
SELECT ... MATCH AGAINST
を実行するとMroongaがクラッシュすることがあります。
感謝¶
Vincent Pelletierさん
11.04リリース - 2021-06-29¶
改良¶
[サーバ変数の一覧]
mroonga_enable_operations_recording
をデフォルトで無効にしました。mroonga_enable_operations_recording
自動リカバリーのために操作の記録を有効にするかどうかを決めるものです。この操作記録はMroongaがクラッシュしたときに自動的にリカバリーするためのものです。通常、Mroonga内にロックが残留している場合、INSERT/DELETE/UPDATEは実行できませんが、
mroonga_enable_operations_recording
が有効な場合、INSERT/DELETE/UPDATEに加えてSELECTも実行出来ないことがあります。自動リカバリーがロックの残留によって、ブロックされるためです。したがって、このバージョンから、デフォルト値を
OFF
にしました。ISERT/DELETE/UPDATE は、ロックの残留によって変わらずブロックされますが、操作記録を無効にすることで、SELECTは動作する可能性があります。残留したロックに対する正しい対処は以下の通りです。
[Debian GNU/Linux] Debian GNU/Linux 向けの Oracle の MySQLパッケージ を使用した Mroonga のインストール手順を追加しました。
Mroonga 11.03にて、Debian GNU/Linux 向けの Oracle の MySQLパッケージ を使用した Mroongaをサポートしました。これらのパッケージのインストール手順をドキュメントに記載しました。これらのパッケージをインストールする際には、このドキュメントを参考にしてください。
[CentOS] MariaDB 10.2.39、10.3.30、10.4.20、10.5.11をサポートしました。
修正¶
検索を実行した際にクラッシュする問題を修正しました。
この問題は通常は発生しません。
発生条件は以下の通りです。
mroonga_command
を使ってGroongaに直接テーブルやカラムを作成している。検索の実行と同時に上記のテーブルやカラムを削除する。
上記の条件が成立した時にMroongaがクラッシュします。
11.03リリース - 2021-05-31¶
警告
このリリースにはアップグレードとアンインストールに関する重大な問題があります。もし、このバージョンをインストールした場合、Mroongaのアップグレードとアンインストールに失敗します。
したがって、このバージョンのMroongaは使用しないでください。
すでにこのバージョンのMroongaをインストール済みの場合、以下の回避策を使うことでMroongaをアップグレードしたりアンインストールしたりできます。
% echo "#!/bin/sh" > /usr/share/mroonga/deb/postrm.sh
% chmod u+x /usr/share/mroonga/deb/postrm.sh
Mroongaのアップグレード、または、アンインストール
警告
このリリースから、パッケージ名が変更されます。この変更の影響でこのバージョンにアップグレード後、Mroongaが無効になることがあります。このバージョンにアップグレードする場合、以下の点を必ず確認してください。
アップグレード後にMroongaが無効だった場合は、Mroongaを手動でインストールし直す必要があります。Mroongaの手動インストール及び、Mroongaが有効かどうかの確認については、以下のURLを参照してください。
また、今後も、Mroonga 11.03をまたいでMroongaをアップグレードする場合は、この現象が発生するので、注意してください。
このバージョンにアップグレード後に、Mroongaは有効だがバージョンが古いという場合は、MySQL、MariaDB、PerconaServerを再起動する必要があります。Mroongaのバージョンは以下のコマンドで確認できます。
SHOW VARIABLES LIKE 'mroonga_version';
警告
このバージョンには非互換の変更があります。
GEOMETRY
型を使用しているユーザーは、Mroonga 11.03にアップグレードする前に現在のデータを保存し、アップグレード後に保存したデータをリストアする必要があります。 データのダンプ/リストアには、以下の方法が使えます。上記の処置を実施せずに、アップグレードするとデータが破損するので注意してください。
データのダンプ/リストアには、以下の方法が使えます。
mysqldump
アップグレード前に
ALTER TABLE ENGINE=InnoDB
を実行し、アップグレード後にALTER TABLE ENGINE=Mroonga
を実行する。この修正を適用しない場合、
INSERT/UPDATE/SELECT/SELECT
はうまく動作しますが、データはGroongaが誤った(緯度と経度はGroonga内で逆にされます)保存をします。そのため、 空間データに対する、mroonga_command('select ...')
は動作しません。
改良¶
以下のようにパッケージ名を変更しました。
mariadb-server-10.x-mroonga
->mariadb-10.x-mroonga
mysql-server-5.x-mroonga
->mysql-community-5.x-mroonga
mysql-server-8.x-mroonga
->mysql-community-8.x-mroonga
percona-server-5x-mroonga
->percona-server-5.x-mroonga
percona-server-8x-mroonga
->percona-server-8.x-mroonga
[Debian GNU/Linux] Oracle の MySQL 5.7 と Oracle の MySQL 8.0 をサポートしました。
空間インデックスのSRIDをサポートしました。
今回のリリースから MBRContains 関数を使った検索で、Mroongaのインデックスが使用されます。
コンディションプッシュダウンを適用する条件式を増やしました。
注釈
コンディションプッシュダウンは、MySQLではなく、Mroonga内で条件式を評価します。したがって、多くのクエリーは、高速になりますが、Mroongaが条件式を評価することで、今までと異なる検索結果を返すことがあります。もし、Mroongaが意図しない検索結果を返した場合、以下のURLから報告してください。そして、コンディションプッシュダウンを無効にしてください。
コンディションプッシュダウンは以下のように無効にできます。
SET GLOBAL mroonga_condition_push_down_type = "NONE"
[CentOS] Percona Server 8.0.23 をサポートしました。
修正¶
緯度と経度を逆に保存していた問題を修正しました。
警告
この修正によって、後方互換性が壊れます。
GEOMETRY
型を使用しているユーザーは、Mroonga 11.03にアップグレードする前に現在のデータを保存し、アップグレード後に保存したデータをリストアする必要があります。 データのダンプ/リストアには、以下の方法が使えます。mysqldump
アップグレード前に
ALTER TABLE ENGINE=InnoDB
を実行し、アップグレード後にALTER TABLE ENGINE=Mroonga
を実行する。
この修正を適用しない場合、
INSERT/UPDATE/SELECT/SELECT
はうまく動作しますが、データはGroongaが誤った(緯度と経度はGroonga内で逆にされます)保存をします。そのため、 空間データに対する、mroonga_command('select ...')
は動作しません。
11.02リリース - 2021-05-10¶
改良¶
11.01リリース - 2021-04-02¶
改良¶
[CentOS] MariaDB 10.2.37、10.3.28、10.4.18、10.5.9をサポートしました。
[CentOS] Percona Server 5.7.33をサポートしました。
以下のように、JSON形式のテキストを使って、参照ベクターカラムに値を追加できるようになりました。
この機能によって、参照元のテーブルから参照先のカラムへ値を直接入力できるため、参照カラムにJSONデータを追加しやすくなります。
CREATE TABLE attributes ( _id int, name varchar(255), value varchar(255) ) DEFAULT CHARSET=utf8mb4; CREATE TABLE items ( id int PRIMARY KEY AUTO_INCREMENT, attributes text DEFAULT NULL flags='COLUMN_VECTOR' groonga_type='attributes' ); INSERT INTO items (attributes) VALUES ('[{"name": "color", "value": "white"}, {"name": "size", "value": "big"}]'); INSERT INTO items (attributes) VALUES ('[{"name": "color", "value": "black"}]'); INSERT INTO items (attributes) VALUES (''); SELECT * FROM attributes; _id name value 1 color white 2 size big 3 color black SELECT * FROM items; id attributes 1 [1,2] 2 [3] 3 []
修正¶
外部キー制約が登録されない問題を修正しました。 [GitHub#393] [Kosuke Yamashitaさんが報告]
この問題は MySQL8.0 でのみ発生します。
例えば、以下のように外部キー制約を定義しても、外部キー制約の情報が出力されていませんでした。
CREATE TABLE referred ( id int PRIMARY KEY AUTO_INCREMENT ); CREATE TABLE refer ( id int PRIMARY KEY AUTO_INCREMENT, id_referred int NOT NULL, CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id) ); SELECT CONSTRAINT_NAME, TABLE_NAME, REFERENCED_TABLE_NAME FROM information_schema.REFERENTIAL_CONSTRAINTS; Empty set (0.000 sec)
以下のように、対象のデータベースに外部キー制約があると、
DROP DATABASE
に失敗する問題を修正しました。[GitHub#390][Kosuke Yamashitaさんが報告]CREATE DATABASE another; USE another; CREATE TABLE referred ( id int PRIMARY KEY AUTO_INCREMENT ) ENGINE=mroonga DEFAULT CHARSET utf8mb4; CREATE TABLE refer ( id int PRIMARY KEY AUTO_INCREMENT, id_referred int NOT NULL, CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id) ) ENGINE=mroonga DEFAULT CHARSET utf8mb4; DROP DATABASE another; ERROR 1016 (HY000): [table][remove] a column that references the table exists: <refer.id_referred> -> <referred>
以下のように、対象のテーブルが別のテーブルから参照されていると、
DROP COLUMN
に失敗する問題を修正しました。[GitHub#389][Kosuke Yamashitaさんが報告]CREATE TABLE referred ( id int PRIMARY KEY AUTO_INCREMENT, name varchar(255), text text ) ENGINE=mroonga DEFAULT CHARSET utf8mb4; CREATE TABLE refer ( id int PRIMARY KEY AUTO_INCREMENT, id_referred int NOT NULL, CONSTRAINT id_referred FOREIGN KEY (id_referred) REFERENCES referred (id) ) ENGINE=mroonga DEFAULT CHARSET utf8mb4; ALTER TABLE referred DROP COLUMN name; ERROR 1016 (HY000): [table][remove] a column that references the table exists: <refer.id_referred> -> <#sql2-3bc-25>
MariaDB 10.3.28、 10.4.18、 10.5.9 との組み合わせでMroongaをビルドすると、ビルドエラーになる問題を修正しました。[GitHub#392][Tomohiro KATOさんがパッチ提供]
MariaDBのMroongaでアップデートに失敗する問題を修正しました。 [Reported by ひじー]
感謝¶
Kosuke Yamashitaさん
かとうさん
ひじーさん
11.00リリース - 2021-02-09¶
メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく11.00へアップグレードできます。
今回のリリースでは、MySQL、MariaDB、PerconaServerが自動的に再起動します。Mroonga 11.00が必要としているGroonga 11.0.0が、MySQL、MariaDB、PerconaServerが再起動されるまで有効にならないためです。
改良¶
10.11リリース - 2021-01-29¶
改良¶
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をサポートしました。
修正¶
[最適化] "WHERE COLUMN IN (SUBQUERY)" が存在する時、 "fast order limit" の最適化が効かない問題を修正しました。
インデックスが付与されたカラムのデータ型を変更する時 インプレースの
ALTER TABLE
が使えない問題を修正しました。この問題は、
ALTER TABLE
をALGORITHM=INPLACE
で実行した時に発生します。したがって、ALTER TABLE
をALGORITHM=COPY
で実行した場合は、発生しません。
10.10リリース - 2020-12-29¶
改良¶
[ストレージモード] テーブルフラグのカスタマイズをサポートしました。[Gitter][Shinichi Takayanagiさんが報告]
今までは、ストレージモードでは、テーブルフラグのカスタマイズをサポートしていませんでした。
このリリースから、以下のようにテーブルフラグのカスタマイズができます。
CREATE TABLE terms ( term VARCHAR(64) NOT NULL PRIMARY KEY ) COMMENT='flags "TABLE_HASH_KEY|KEY_LARGE"' DEFAULT CHARSET=utf8mb4;
カスタマイズ可能な項目については、以下のURLを参照してください。
[Ubuntu] Ubuntu 20.10 (Groovy Gorilla)をサポートしました。
[CentOS] Percona Server 8.0.22をサポートしました。
感謝¶
Shinichi Takayanagiさん
pinpikokunさん [GitHub#373にてパッチ提供]
10.09リリース - 2020-12-04¶
改良¶
[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をサポートしました。
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¶
改良¶
[CentOS] MariaDB 10.5.5をサポートしました。
カラム圧縮のテストで256byte以上の文字列を使うテストを追加しました。 [GitHub#350][KartikSonejiさんがパッチ提供]
感謝¶
KartikSonejiさん
10.06リリース - 2020-09-02¶
改良¶
注釈
「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
コマンドはパッケージングに共通のエラーをチェックするためのコマンドです。インストール方法についての詳細は、以下も参照してください。
[CentOS] Percona Server 5.7.31をサポートしました。
10.05リリース - 2020-07-29¶
改良¶
10.03リリース - 2020-05-29¶
改良¶
修正¶
[Ubuntu] Ubuntu 19.10 (Eoan Ermine)向けMroongaが提供されていなかった問題を修正しました。
10.02リリース - 2020-04-29¶
改良¶
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¶
改良¶
[CentOS] Percona Server 5.7.29をサポートしました。
修正¶
以下の条件を満たしたクエリーを送信した際に、Mroongaがクラッシュする問題を修正しました。 [GitHub#303] [pinpikokunさんが報告]
Mroongaの
ORDER_BY_LIMIT
の最適化が有効な時この最適化の条件については、 https://mroonga.org/ja/docs/reference/optimizations.html#order-by-limit を参照してください。
Mroongaを使ったサブクエリーで
ORDER_BY_LIMIT
を使っていない時。
感謝¶
pinpikokunさん
9.12リリース - 2020-01-29¶
改良¶
9.11リリース - 2020-01-08¶
改良¶
[Ubuntu] Ubuntu 14.04 LTS (Trusty Tahr) のサポートをやめました。
[Ubuntu] Ubuntu 18.10 (Cosmic Cuttlefish) のサポートをやめました。
[CentOS] CentOS 8向けのインストール方法を追記しました。
[CentOS] MariaDB 10.2.30、10.3.21、10.4.11をサポートしました。
InnoDBのシャットダウンプロセスを可視化するためのパッチをMariaDB 10.3と10.4に適用しました。
この変更は一時的なものです。将来のバージョンで削除する予定です。
この変更によって、InnoDBのシャットダウン時に出力されるログが増加します。
修正¶
[Ubuntu] 不足していた Ubuntu 16.04 (Xenial Xerus) のサポートを追加しました。
9.10リリース - 2019-11-29¶
改良¶
修正¶
WSL上のUbuntu 18.04でパッケージインストール時に dpkg --configure が失敗する問題を修正しました。 [GitHub#282][ochaochaocha3さんがパッチ提供]
感謝¶
ochaochaocha3さん
9.09リリース - 2019-10-30¶
注釈
今回のバージョンからパフォーマンスが低下しているかもしれません。もし、以前よりパフォーマンスが低下していたら、是非、再現手順を報告してほしいです。
改良¶
[CentOS] MySQL 5.6.46と5.7.28とMySQL 8.0.18(制限あり)をサポートしました。
修正¶
MySQL 8.0.18向けのパッケージのビルドエラーを修正しました。
9.08リリース - 2019-09-27¶
改良¶
修正¶
[Debian GNU/Linux] Debian 10(buster) に mariadb-server-10.3-mroonga をインストールできない問題を修正しました。
感謝¶
kajiysさん
bizlevelさん
9.07リリース - 2019-08-29¶
改良¶
[Debian GNU/Linux] Debian 10(buster)のインストールドキュメントを追加しました。
[CentOS] MariaDB 10.1.41、10.2.26、10.3.17、10.4.7をサポートしました。
[サーバ変数の一覧]
mroonga_query_log_file
のドキュメントを追加しました。[Ubuntu] Mroongaのアンインストール方法についてのドキュメントを追加しました。 [GitHub#135][ryfjwrさんがパッチ提供]
[ストレージモード] 正規表現検索の使い方についてのドキュメントを追加しました。
MariaDB 10.0のサポートをやめました。
[CentOS] Percona Server 5.6.45、5.7.27をサポートしました。
[CentOS] CentOS 6でMariaDB 10.x のサポートをやめました。
感謝¶
ryfjwrさん
9.05リリース - 2019-07-30¶
改良¶
修正¶
[CentOS]
mysql80-comunity-release
のパッケージ名が間違っていたのを修正しました。[groonga-dev,04759][各務さんが報告][ストレージモード] ユニークインデックスを更新する際の不具合を修正しました。以下の条件を満たすとキーの重複エラーが発生します。
ユニークインデックスをマルチカラムに対して作成する。
ユニークキーのカラムの一部が更新される。
すでにユニークインデックスを作成している場合には、作成したインデックスにゴミが残っている可能性があるので該当するテーブルを再作成してください。ダンプ・リストアするか、
ALTER TABLE (TABLE_NAME) FORCE
で再作成することをおすすめします。[mysql8.0]
TIMESTAMP
型をサポートしました。[groonga-dev,04763][各務さんが報告]
感謝¶
各務さん
9.04リリース - 2019-06-29¶
改良¶
修正¶
無限ループすることがある不具合を修正しました。この不具合は
FULLTEXT INDEX (...) COMMENT 'index_flags "INVALID|WITH_SECTION"'
のようにフラグの指定が間違っていると発生します。[windows] MariaDB 10.2/10.3のpdbのインストール先のパスの誤りを修正しました。
[その他] プラグインのインストール手順でアカウントの指定がないのを修正しました。
クラッシュする不具合を修正しました。
((MATCH OR MATCH) AND (MATCH))
というクエリーのパターンで発生します。
9.03リリース - 2019-05-29¶
改良¶
[ストレージモード] サンプルの
COMMENT
ではtokenizer "XXX"` を使うようにしました。``default_tokenizer "XXX"
は9.01から非推奨なためです。[Windows] MariaDB 10.1と10.2のzipパッケージを再びサポートしました。
[CentOS] MariaDB 10.3.14と10.3.15をサポートしました。
[Debian GNU/Linux] インストール手順をコピペしやすくしました。
COMMENT 'flags "INDEX_LARGE"'
というように指定するINDEX_LARGE
フラグをサポートしました。[CentOS] MariaDB 10.2.24をサポートしました。
[CentOS] MariaDB 10.1.40をサポートしました。
[Ubuntu] Ubuntu 19.04 (Disco Dingo)をサポートしました。
[CentOS] Percona Server 5.6.44をサポートしました。
[CentOS] MySQL 5.6.44と5.7.26をサポートしました。
9.01リリース - 2019-03-29¶
改良¶
[ストレージ] トークナイザーのオプション指定をサポートしました。
例えば、 COMMENT にトークナイザーのオプションを
CREATE TABLE foo (...) COMMENT='tokenizer "TokenNgram('n', 4)"'
などと指定できます。
[mariadb] テーブルのパラメーターとして "tokenizer" をサポートしました。
例えば、 トークナイザーを
CREATE TABLE foo (...) TOKENIZER='TokenNgram("n", 4)'
などと指定できます。
[ストレージ] コメントのトークナイザーのパラメータとして
tokenizer
をサポートしました。default_tokenizer
は非推奨になりました。
[mariadb] テーブルのパラメーターとして "normalizer" をサポートしました。
例えば、ノーマライザーを
CREATE TABLE foo (...) NORMALIZER='NormalizerNFKC100("unify_kana", true)'
などと指定できます。
[mariadb] テーブルのパラメータとして "token_filters" をサポートしました。
例えば、トークンフィルターを
CREATE TABLE foo (...) TOKEN_FILTERS='TokenFilterNFKC100("unify_katakana_v_sounds", "true")'
などと指定できます。
インデックスのパラメーターとして "LEXICON" をサポートしました。
例えば、
FULLTEXT INDEX foo (bar) LEXICON='terms'
やFULLTEXT INDEX foo (bar) COMMENT 'lexicon "terms"'
などと指定できます。
[appveyor] Mroongaを有効にしたパッケージのビルドをサポートしました。[GitHub#230]
[CentOS] Percona Server 5.7.25-28をサポートしました。
[CentOS] MariaDB 10.3.13をサポートしました。
[CentOS] MariaDB 10.2.23をサポートしました。
9.00リリース - 2019-02-09¶
メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなく9.00へアップグレードできます。
Groonga 9.0.0 にて、 TokenPattern
、 TokenTable
トークナイザーと NormalizerNFKC100
に remove_blank
をサポートしました。Groonga 9.0.0 にアップグレードすることで、Mroonga 9.00からこれらを使えます。
改良¶
[CentOS] Percona Server 5.7.24-27をサポートしました。
[CentOS] Percona Server 5.6.43 rel84.3をサポートしました。
[rpm][centos] MariaDB 10.3.12に対応しました。
[rpm][centos] MariaDB 10.2.21に対応しました。
[rpm][centos] Percona Server 5.7.24-27をサポートしました。
[rpm][centos] Percona Server 5.6.43 rel84.3に対応しました。
[rpm][centos] MySQL 5.7.25をサポートしました。
[rpm][centos] MySQL 5.6.43をサポートしました。
8.09リリース - 2018-11-29¶
改良¶
[Ubuntu] Ubuntu 18.10 (Cosmic Cuttlefish)をサポートしました。
[Windows] MariaDB 10.3.10をサポートしました。
[CentOS] MariaDB 10.2.19をサポートしました。
[CentOS] MariaDB 10.1.37をサポートしました。
[CentOS] Percona Server 5.7.23-25をサポートしました。
[rpm][centos] MariaDB 10.3.11に対応しました。
[rpm][centos] MySQL 5.6.42をサポートしました。
[rpm][centos] MySQL 5.7.24をサポートしました。
訂正:
以下の情報を削除しました。
"MySQL 8をサポートしました。"
すみません。Mroonga 8.09のリリース情報に誤りがありました。MySQL 8はサポートしていません。まだ対応中となります。
8.07リリース - 2018-09-29¶
改良¶
トークナイザーの
off
オプションは非推奨になりました。かわりにnone
オプションを使ってください。2016年9月27にリリースされたMariaDB 10.2.2以前のMariaDB 10.2系サポートをやめました。
修正¶
[CentOS] MariaDB 10.1.36をサポートしました。
8.06リリース - 2018-08-29¶
今回のリリースでは、Mroongaをすでにインストールしていて、かつGroonga 8.0.4以降をインストールしていない場合、MySQLが自動的に再起動されます。Mroonga 8.06が必要としているGroonga 8.0.4以降が、MySQLが再起動されるまで有効にならないためです。
改良¶
Groonga 8.0.4以降が必要になります。
groonga-normalizer-mysql 1.1.3以降が必要になります。
utf8mb4_0900族の照合順序をサポートしました。
トークナイザーのオプションをサポートしました。
例:
tokenizer "TokenNgram(\'loose_symbol\', true)"
参考: http://groonga.org/ja/docs/news.html#release-8-0-2-2018-04-29
Groongaのデフォルトのロガーを使うようにしました。
[Windows] ベースにしているMariaDBを10.1.33から10.3.9にアップデートしました。
注意: MariaDB 10.3にアップグレードする前に、既存のMariaDB 10.1のデータベースをダンプする必要があります。そのあと、アップグレード後にリストアしてください。
[Debian GNU/Linux] Debian 8 (jessie) のサポートをやめました。
[Ubuntu] Ubuntu 17.10 (Artful Aardvark) のサポートをやめました。
[WIP] MySQL 8に対応中です。
ストレージモードはほぼ完了しています。(JSON型はまだ動きません)
ラッパーモードは対応中です。
修正¶
[ストレージモード] マルチレンジリードで誤った結果が返される場合がある問題を修正。[GitHub#211][colt27さんが報告]
感謝¶
colt27さん
8.03リリース - 2018-05-29¶
改良¶
修正¶
[Ubuntu] Ubntu 14.04 LTS(Trusty)でインストールに失敗していた問題を修正しました(8.02にバックポート済み)。[GitHub#202,#205][Masato Hiraiさんが報告]
感謝¶
Masato Hiraiさん
8.02リリース - 2018-04-29¶
改良¶
[Ubuntu] Ubuntu 18.04 LTS (Bionic Beaver)をサポートしました。
[Debian GNU/Linux] Jessieでi386をサポートしました。
意味のない「duplicated unique id」というエラーログを表示しないようにしました。 [GitHub#197]
[developer][test] --record オプションをサポートしました。
[CentOS] groonga-release-X.X.X の代わりに groonga-release-latest を使うようにしました。
[インストールチェック] バージョンチェックの方法を追記しました。
[CentOS][percona] 5.6.34未満と5.7.21未満からのアップグレードをサポートしました。 [groonga-dev,04599][木下崇さんが報告][三谷さんが調査]
[CentOS] MySQL 5.6.40と5.7.22をサポートしました。
[CentOS] Percona Server 5.7.21-21をサポートしました。
修正¶
ORDER BY の中に ORDER BY 1 + 1, id, content のような複雑な条件があるとクラッシュするバグを修正しました。
コンディションプッシュダウンが有効になっているときに AND (x = 1 OR x = 2) などがSQLに含まれていると MATCH AGAINST 条件が無視されるバグを修正しました。 [Gitter/ja:5ae014842b9dfdbc3ac7ce1f][colt27さんが報告]
カラムキャッシュのメモリリークを修正しました。
感謝¶
木下崇さん
三谷さん
colt27さん
8.01リリース - 2018-03-29¶
今回のリリースで、Mroongaをすでにインストールしている場合にはMySQLが自動的に再起動されます。これはMroongaが必要としている新しいバージョンのGroonga 8.0.1が、MySQLが再起動されるまで有効にならないためです。
改良¶
[rpm][centos] Percona Server 5.6.39をサポートしました。 [@iiiiyyyyさんが報告]
[rpm][centos] Percona Server 5.7.21をサポートしました。
[rpm][centos] MariaDB 10.2.13をサポートしました。[GitHub#198] [Shota Suzukiさんが報告]
[rpm][centos] MariaDB 10.2.14に対応しました。
修正¶
誤ったキャッシュが使われる不具合を修正しました。複数のデータベースを作成していて、そのどれかに mroonga_command() 経由でアクセスしたときに意図せず誤ったキャッシュが返る問題が発生します。問題を修正するにはGroonga 8.0.1以降が必要です。
"NOT IN"クエリーが空の結果を返す不具合を修正しました。この不具合は "NOT IN"を複数の引数と一緒に使ったときに発生します。例えば "NOT IN (xxx, xxx)" などです。
コンディションプッシュダウンが有効なときに"NOT IN"で結果から除外することができない不具合を修正しました。
"ORDER BY RAND()" クエリーが誤った結果を返す不具合を修正しました。この不具合は "ORDER BY RAND()" と "LIMIT" を同時に指定したときに発生します。
ORDER LIMITの最適化が意図せずORDER BY function()にも適用されてしまう不具合を修正しました。
感謝¶
@iiiiyyyyさん
Shota Suzukiさん
8.00リリース - 2018-02-09¶
メジャーバージョンアップです! メジャーバージョンアップですが、互換性は壊れていないので、データベースを再構築することなくアップグレードできます。
改良¶
ハッシュインデックスを作成する際に、使用するリソースを減らすために小さいハッシュを使うようにしました。
[percona57] ギャップロック検出をサポートしました。 [GitHub#188][Iwoさんの報告]
感謝¶
Iwoさん
7.11リリース - 2018-01-29¶
改良¶
[テスト] サブクエリーとORDER BY ... LIMIT最適化のテストケースを追加しました。[GitHub#184] [濵﨑一樹さんが報告]
[rpm][centos] MariaDB 10.3に対応しました。
[deb][ubuntu] Ubuntu 17.10向けにMariaDB 10.1のパッケージをサポートしました。
修正¶
[Mroonga_n_pooling_contexts]
FLUSH STATUS
により値が意図せずリセットされてしまう不具合を修正しました。[maradb10.3] 定数の変更によりビルドエラーになっていた問題を修正しました。(
HA_MUST_USE_TABLE_CONDITION_PUSHDOWN
がHA_CAN_TABLE_CONDITION_PUSHDOWN
へと変更)[macOS] 現状にそぐわないインストール手順を削除し、最新のドキュメントへのリンクに差し替えました。 [天野龍司さんが報告]
[rpm][centos] MariaDB 10.2.12をサポートしました。[GitHub#186] [Shota Suzukiさんが報告]
[rpm][centos] Percona Server 5.7.20-19に対応しました。
[Ubuntu] Ubuntu 17.04(Zesty Zapus)のサポートをやめました。2018年1月13日でサポートが切れた(EOLになった)ためです。
感謝¶
濵﨑一樹さん
天野龍司さん
Shota Suzukiさん
7.10リリース - 2017-12-29¶
改良¶
Groonga 7.1.0が必要になります。Mroonga 7.10にアップグレード後にMySQLを再起動する必要があります。
[MariaDB 10.3] MariaDB 10.3に対応しました。
[rpm][centos] MariaDB 10.2.11に対応しました。
[rpm][centos] MariaDB 10.1.30に対応しました。
[rpm][centos] Percona Server 5.7.20に対応しました。
[rpm][centos] Percona Server 5.6.38に対応しました。
[最適化] マルチカラムインデックスでもカウントスキップ最適化をサポートしました。
コンディションプッシュダウン(検索条件をMySQLレベルではなくGroongaレベルで処理する最適化)をサポートしました。この最適化関連の変数をいくつか追加しました。
[Mroonga_condition_push_down]
Mroonga_condition_push_down
を追加しました。[mroonga_condition_push_down_type]
mroonga_condition_push_down_type
を追加しました。デフォルト値はONE_FULL_TEXT_SEARCH
です。このときは、WHERE
句の中に1つだけMATCH AGAINST
がある場合にだけコンディションプッシュダウンを使います。従来と同じ挙動です。この値をALL
にすると、常にコンディションプッシュダウンを使います。今のところ、ALL
は実験的な機能です。実際に使って、速くなるか遅くなるかフィードバックして欲しいです。
固定長カラムの値の取得処理を高速化するためにカラムキャッシュ機能をサポートしました。
last_insert_grn_id
関数をmroonga_last_insert_grn_id
関数に改名しました。他のUDFと同じようにmroonga_
プレフィックスが付きました。last_insert_grn_id
は非推奨ですが引き続き使えます。 [GitHub#177] [Ian Gilfillanさんが報告][Mroonga_n_pooling_contexts] mroonga_command() 用にプールしているコンテキストの数を確認するためのステータス変数を追加しました。
[
FLUSH TABLES
] mroonga_command() 用にプールしているコンテキストもクリアーするようになりました。
感謝¶
Ian Gilfillanさん
7.09リリース - 2017-11-29¶
改良¶
[rpm][centos] MariaDB 10.2.10に対応。
[rpm][centos] MariaDB 10.1.29に対応。
テストを実行するときにsedがなくてもよいようにしました。 [Sergei Golubchikさんがパッチ提供]
[cmake] Mroongaを無効にしてビルドする場合にはMroonga関連の設定をスキップするようにしました。 [Vladislav Vaintroubさんがパッチ提供]
感謝¶
Sergei Golubchikさん
Vladislav Vaintroubさん
7.08リリース - 2017-10-29¶
改良¶
テーブル作成時に
flags
オプションを指定できるようになりました。 オプションにはTABLE_HASH_KEY
、TABLE_PAT_KEY
、TABLE_DAT_KEY
とKEY_LARGE
が指定できます。 [groonga-dev, 04494] [宮下さんが報告][rpm][centos] MySQL 5.6.38-2と5.7.20-15.24に対応。
[Ubuntu] Ubuntu 17.10 (Artful Aardvark)をサポートしました。
感謝¶
宮下さん
7.07リリース - 2017-10-12¶
改良¶
[mroonga_query_expand]
mroonga_query_expand
UDFを追加しました。同義語テーブルを用意しておけば、クエリに含まれる語の同義語をmroonga_query_expand
で展開できます。この関数を使うためには Groonga 7.0.6以降が必要です。[rpm][centos] 最新のPercona Server 5.7.19-17.1をサポートしました。 [tigersun2000さんが報告]
[rpm][centos] MariaDB 5.5.56-2をサポートしました。 [@akiko_pusuさんが報告]
[rpm][centos] MariaDB公式が提供するMariaDB 10.1/10.2をサポートしました。
修正¶
"DROP DATABASE" したときに誤ったデータベースが使われてしまう可能性のある不具合を修正しました。この不具合により内部で使っている "mroonga_operations" テーブルが意図せず削除されてしまうため、クラッシュする可能性があります。この不具合は次の2つの条件を満たすと発生します:
Mroongaを使っているデータベースが複数あること
"DROP DATABASE" をMroongaのテーブルを作成していないデータベースに対して実行すること
意図しない結果として、 "DROP DATABASE x" は 既存の "y" データベースの "mroonga_operations" テーブルを削除してしまいます。
CHECK TABLEしたあとにクラッシュする不具合を修正しました。 [GitHub#167] [GMOメディア株式会社さんが報告]
[deb][mariadb10] lsb-releaseパッケージへの依存関係を追加しました。preinst や postrm などメンテナスクリプトに必要でした。 [GitHub#169] [すぎうらさんがパッチ提供]
感謝¶
@tigersun2000さん
@akiko_pusuさん
GMOメディア株式会社さん
すぎうらさん
7.06リリース - 2017-08-29¶
改良¶
[mroonga_highlight_html()] mroonga_highlight_html の使用方法を追記しました。
Generated Columnをサポートしました。JSON型のカラムから値を取り出した結果をカラムとして実体化して全文検索できるので便利です。 [GitHub#159,#160,#163] [村上さんがパッチ提供]
mroonga_enable_operations_recording サーバー変数を追加しました。 [GitHub#158] [村上さんがパッチ提供]
MariaDB 10.2 と MySQL 5.7 で
VIRTUAL
Generated Columnをサポートしました。 [GitHub#161,#162] [村上さんがパッチ提供]MariaDB 10.1.26に対応しました。
[rpm][centos] Percona Server 5.6.36 rel82.1 と 5.7.18-16 をサポートしました。 [Gitter/ja:59894500bc46472974622cbd] [@tigersun2000_twitterさんが報告]
[rpm][centos] CentOS 7にてMySQL 5.6.37 と MySQL 5.7.19に対応しました。 [groonga-dev,04441] [各務さんが報告]
感謝¶
村上さん
@tigersun2000_twitterさん
各務さん
7.05リリース - 2017-07-29¶
改良¶
Groongaのクエリーログをサポートしました。
mroonga_query_log_file
変数を指定してください。 [GitHub#148]MariaDB 10.2.7をサポートしました。 [groonga-dev,04397] [かとうさんが報告]
[mroonga_command()] データベース名が特別な名前( 例えば
db-1
)な場合もサポートしました。データベース名に-
が含まれていても大丈夫です。[mroonga_command()] コマンドの自動エスケープに対応しました。Groongaの機能をMroongaから使いやすくなります。
MariaDB 5.5.57に対応しました。
[rpm][centos] CentOS 6にてMySQL 5.6.37-2 と MySQL 5.7.19-1に対応しました。 [groonga-dev,04403] [各務さんが報告]
[Ubuntu] Ubuntu 16.10(Yakkety Yak)のサポートをやめました。2017年7月20日でサポートが切れた(EOLになった)ためです。
[mroonga_highlight_html()] 対象となるカラムや文字列をハイライトする関数をサポートしました。
修正¶
内部的に有効なインデックスが見つからない場合にクラッシュする不具合を修正しました。 [Gitter:groonga/ja:596714a5c101bc4e3a7db4e5] [K Torimotoさんが報告]
感謝¶
K Torimotoさん
かとうさん
各務さん
7.04リリース - 2017-06-29¶
改良¶
ヒットしたレコード用に一時テーブルを作成しようとして失敗したときにエラーメッセージをだすようにしました。この種のエラーはインデックスが壊れているときに発生します。
[Debian GNU/Linux] Debian 9 (stretch)をサポートしました。
修正¶
内部で呼び出している関数
grn_table_setoperation
を呼ぶ前のNULL
チェックが抜けているせいでクラッシュする不具合を修正しました。このようなクラッシュはインデックスが壊れているときに発生します。
7.03リリース - 2017-05-29¶
改良¶
感謝¶
@bignum_twitterさん
@pinpikokunさん
村上さん
7.02リリース - 2017-04-29¶
改良¶
修正¶
[CentOS] MySQL 5.6.36とMySQL 5.7.18でビルドエラーになる問題を修正しました。
[cmake] Mroongaがバンドルされているがシステムの
libgroonga
を使う場合にlibgroonga
がリンクされていない問題を修正しました。 [GitHub#137] [村上さんがパッチ提供]
感謝¶
村上さん
7.01リリース - 2017-03-29¶
改良¶
[CentOS] EOLのため、CentOS 5のサポートをやめました。
[ストレージモード]
ALTER TABLE ADD/DROP FOREIGN KEY
をサポートしました。[ストレージモード]
ENUM
を使っている場合のORDER LIMIT
最適化をサポートしました。[groonga-dev,04277] [村田さんが報告][ストレージ] カラムのZSTD圧縮フラグ(
COMPRESS_ZSTD
)をサポートしました。 [GitHub#133] [村上さんがパッチ提供][サーバ変数の一覧] mroonga_libgroonga_support_zstd サーバー変数のドキュメントを追加しました。 [GitHub#133] [村上さんがパッチ提供]
[インストール] リソースのダウンロードに
https://packages.groonga.org
を推奨するようにしました。
修正¶
[ストレージモード] log-bin と
COLLATE
が指定されている場合、UPDATE PRIMARY KEY
で更新エラーになる問題を修正しました。 [GitHub#132] [kitoraさんが報告]設定していないのに
FOREIGN KEY
が意図せずダンプされる不具合を修正しました。 [groonga-dev,04276] [村田さんが報告]
感謝¶
kitoraさん
村田さん
村上さん
7.00リリース - 2017-02-09¶
改良¶
感謝¶
kitoraさん