[groonga-dev,04512] [ANN] Mroonga 7.07

Back to archive index

Kentaro Hayashi hayas****@clear*****
2017年 10月 13日 (金) 13:27:12 JST


Mroonga 7.07をリリースしました!

リリースアナウンス:
   http://mroonga.org/ja/blog/2017/10/12/mroonga-7.07.html

変更点:
   http://mroonga.org/ja/docs/news.html#release-7-07


さて、今回の主な変更点は次のとおりです。

  * mroonga_query_expand UDFのサポート
  * MariaDB公式が提供している10.1/10.2パッケージに対応しました

### mroonga_query_expand UDFのサポート

今回のリリースでは、mroonga_query_expand というUDFをサポートしました。
これはクエリーに含まれる語の同義語を展開して検索するのに使います。

使い方の例を示します。

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

  CREATE TABLE synonyms (
    term varchar(255),
    synonym varchar(255),
    INDEX (term)
  ) ENGINE= Mroonga DEFAULT CHARSET utf8;

全文検索用の diaries テーブルと同義語を定義する synonyms テーブルを例では使います。

これに、同義語のデータと検索対象のデータを登録します。

  INSERT INTO synonyms VALUES ('Groonga', 'Groonga Mroonga Rroonga');

  INSERT INTO diaries (content) VALUES ("Groonga is fast.");
  INSERT INTO diaries (content) VALUES ("Mroonga is fast.");
  INSERT INTO diaries (content) VALUES ("PGroonga is fast.");

これでサンプルを試す準備ができました。 mroonga_query_expand の構文は次のとおりです。

mroonga_query_expand("同義語を定義するテーブル", "対象語句のカラム", "同義語を定義したカラム", "検索語句");

Groonga で検索したら Mroonga でも検索したい場合には次のように
mroonga_query_expand を使って検索します。

  mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST(mroonga_query_expand("synonyms", "term", "synonym", "Groonga") IN BOOLEAN MODE);
  +----+------------------+
  | id | content          |
  +----+------------------+
  |  1 | Groonga is fast. |
  |  2 | Mroonga is fast. |
  +----+------------------+
  2 rows in set (0.01 sec)

mroonga_query_expandがsynonyms テーブルから Groonga に対応する
「(Groonga Mroonga Rroonga)」を返すので、期待通りにGroongaとMroongaを
含む結果を取得できました。

## MariaDB公式が提供している10.1/10.2パッケージに対応しました

今回のリリースから、MariaDB公式が提供している10.1および10.2向けのパッ
ケージの提供を始めました。 対象となるのは、CentOS 6とCentOS 7です。

対応している環境それぞれのインストール手順についてはドキュメントを参照してください。

* CentOS 6でMariaDB 10.1のパッケージを利用
  http://mroonga.org/ja/docs/install/centos.html#centos-6-with-mariadb-10-1-package
* CentOS 6でMariaDB 10.2のパッケージを利用
  http://mroonga.org/ja/docs/install/centos.html#centos-6-with-mariadb-10-2-package
* CentOS 7でMariaDB 10.1のパッケージを利用
  http://mroonga.org/ja/docs/install/centos.html#centos-7-with-mariadb-10-1-package
* CentOS 7でMariaDB 10.2のパッケージを利用
  http://mroonga.org/ja/docs/install/centos.html#centos-7-with-mariadb-10-2-package

## 改良

* [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メディア株式会社さん
* すぎうらさん


-- 
Kentaro Hayashi <hayas****@clear*****>
-------------- next part --------------
$B%F%-%9%H7A<00J30$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
$B%U%!%$%kL>(B: $BL5$7(B
$B7?(B:         application/pgp-signature
$B%5%$%:(B:     833 $B%P%$%H(B
$B @ bL@(B:       $BL5$7(B
URL:        https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20171013/73badd3e/attachment.pgp 



groonga-dev メーリングリストの案内
Back to archive index