Mroongaブログ

2017-10-12

Mroonga 7.07リリース!

Mroonga 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_expandsynonyms テーブルから Groonga に対応する「(Groonga Mroonga Rroonga)」を返すので、期待通りにGroongaMroongaを含む結果を取得できました。

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

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

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

おわりに

7.06からの詳細な変更点は7.07リリース - 2017-10-12を確認してください。

それでは、Mroongaでガンガン検索してください!