[前][次][番号順一覧][スレッド一覧]

mysql:15957

From: HAYASHI Kentaro <HAYASHI Kentaro <hayashi@xxxxxxxxxx>>
Date: Mon, 29 Apr 2013 15:50:55 +0900
Subject: [mysql 15957] [ANN] mroonga 3.03


林です。

今日は毎月恒例の肉の日ですね。

まずはじめに、利用事例の記事を書いてくれる人募集のお知らせです。

  これまでも、groonga.orgにて利用事例 http://groonga.org/ja/users/ を
  紹介してきましたが、それとは別に、http://gihyo.jp/にてgroonga関連の記事の連載を
  隔週連載groongaとしてはじめました。
  まだgroongaを知らない人にもWebの連載記事を通じて知ってもらいたいというのが動機です。
  現在第2回まで公開しています。

    http://gihyo.jp/dev/clip/01/groonga

    * 第1回 全文検索エンジンgroongaを紹介します!
      http://gihyo.jp/dev/clip/01/groonga/0001
    * 第2回 groongaをRuby On Railsでも使ってみた 〜chikamap.comの事例から
      http://gihyo.jp/dev/clip/01/groonga/0002

  利用事例がつきたら終了なので、実際に使っているユーザーのみなさんに
  利用事例を書いてもらえたらいいなぁと思っています!
  詳細は「groonga普及のための協力のお願い」を参照してください。

    http://sourceforge.jp/projects/groonga/lists/archive/dev/2013-February/001186.html

それとは別に、毎週木曜にQiitaでのgroonga関連(もちろんmroongaも!)の情報提供も続けているので、
参考にしてみてください。

  http://qiita.com/users/groonga


mroonga 3.03をリリースしました。
  http://mroonga.org/ja/docs/news.html#release-3-03

mroongaはMySQL 5.1/5.5/5.6、MariaDB 5.3/5.5/5.6で利用できる全文検
索・位置情報検索可能なストレージエンジンです。mroongaは
Tritonnの後継プロジェクトです。

ドキュメント:
  http://mroonga.org/ja/
インストールガイド:
  http://mroonga.org/ja/docs/install.html

mroongaでよくあるMySQLとのバージョン不一致で
うまくインストールできなかったんだけど、、、というトラブルも
リリース直後は遭遇しにくいので、この機会にmroongaを試してみるのは
いかがでしょうか。

みなさんからのフィードバックをお待ちしています!

1.20より前のバージョンからアップグレードする場合は以下にある
手順を使ってください。
  http://mroonga.org/ja/docs/news.html#release-1-20

1.20からアップグレードする場合は以下にある手順を使ってくださ
い。
  http://mroonga.org/ja/docs/news.html#release-2-00

2.00か2.01からアップグレードする場合は、以下の手順でパッケージ
署名用の新しい鍵をインポートしてください。

  http://mroonga.org/ja/docs/news.html#release-2-02

2.00以降でストレージモードにてマルチカラムインデックスを
使っている場合は以下の手順でインデックスを作り直して
ください。

  http://mroonga.org/ja/docs/news.html#release-2-03

2.04以降でストレージモードにてSETカラムもしくは要素数が256より
少ないENUMを使用している場合は、以下の手順でデータベースを
再作成してください。

  http://mroonga.org/ja/docs/news.html#release-2-05

2.05以降でマルチカラムインデックスをVARCHARやCHAR型に対して使っている
場合は、以下の手順でインデックスを再作成してください。

  http://mroonga.org/ja/docs/news.html#release-2-08

2.08以降でTIMESTAMP型のカラムを使っているテーブルがあれば、
データベースを再作成してください。
CHAR(N)を主キーとしているテーブルがあれば、インデックスを再作成してく
ださい。

  http://mroonga.org/ja/docs/news.html#release-2-09

今回のリリースの主なトピックは以下の通りです。

  * 公式URLの変更
  * Ubuntu 13.04 Raring Ringtailのサポート
  * コメントでノーマライザーの指定をサポート

○ 公式URLの変更

これまで、mroongaの公式URLは mroonga.github.com だったのですが、
mroonga.orgに変更しました。

これは、mroonga.github.comがmroonga.github.ioにリダイレクトされる
ようになったことがきっかけです。
外部要因で公式URLが変わってしまうのはあまり嬉しくないので、独自ドメインで
提供するようにしました。

移行措置として従来通り mroonga.github.com にアクセスした場合でも、
あるいは mroonga.github.io でアクセスしてもきちんと mroonga.org に
リダイレクトされるようになっています。

○ Ubuntu 13.04 Raring Ringtailのサポート

今回のリリースでは 2013/04/25 にリリースされたばかりのUbuntu 13.04の
サポートを追加しました。

インストール手順はドキュメントを参照してください。

  http://mroonga.org/ja/docs/install.html#ubuntu-13-04-raring-ringtail

○ コメントでノーマライザーの指定をサポート

今回のリリースでは、FULLTEXT INDEXに対するノーマライザーの指定をサポートしました。

使うときは以下のようにします。

  FULLTEXT INDEX (column) COMMENT 'normalizer "NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark"'

NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMarkというのは
MySQL互換のノーマライザーを提供するgroonga-normalizer-mysqlに新たに追加したノーマライザーです。

これを使うと濁音、半濁音を区別することができるようになるので、照合順序として
utf8_unicode_ciを使った場合に意図しない検索結果が含まれにくくなります。

具体的なサンプルで確認してみましょう。

  CREATE TABLE test (
    id int(11) NOT NULL AUTO_INCREMENT,
    content varchar(255) NOT NULL COLLATE 'utf8_unicode_ci',
    content2 varchar(255) NOT NULL COLLATE 'utf8_unicode_ci',
    PRIMARY KEY (id),
    FULLTEXT INDEX (content),
    FULLTEXT INDEX (content2) COMMENT 'normalizer "NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark"'
  ) ENGINE=mroonga DEFAULT CHARSET=utf8;
  
  INSERT INTO test(content,content2) VALUES ('ブラック', 'ブラック');
  INSERT INTO test(content,content2) VALUES ('ふらつく', 'ふらつく');
  
contentとcontent2にはいずれもFULLTEXT INDEXを適用しています。
content2にはnormalizerを指定しているのが違っています。

では、「ブラック」と「ふらつく」をそれぞれ検索してみましょう。

  SELECT * FROM test WHERE MATCH(content) AGAINST('ブラック' IN BOOLEAN MODE);
  id	content	content2
  1	ブラック	ブラック
  2	ふらつく	ふらつく
  SELECT * FROM test WHERE MATCH(content) AGAINST('ふらつく' IN BOOLEAN MODE);
  id	content	content2
  1	ブラック	ブラック
  2	ふらつく	ふらつく
  
「ブラック」で検索しているのに「ふらつく」が含まれてしまっていますね。
逆に「ふらつく」で検索しているのに「ブラック」が含まれてしまっていることがわかります。

では、normalizerを適用するとどうなるでしょうか。

  SELECT * FROM test WHERE MATCH(content2) AGAINST('ブラック' IN BOOLEAN MODE);
  id	content	content2
  1	ブラック	ブラック
  SELECT * FROM test WHERE MATCH(content2) AGAINST('ふらつく' IN BOOLEAN MODE);
  id	content	content2
  2	ふらつく	ふらつく
  
きちんと濁音も区別しているので「ブラック」と「ふらつく」が同一視されることはありません。
このように意図しない結果を検索結果から除去できるようになりました。

○ 変更点

3.02からの変更点は以下の通りです。
  http://mroonga.org/ja/docs/news.html#release-3-03

改良
^^^^

    * [doc] テーブルの制限に関するドキュメントを追加した。 [groonga-dev,01281] [磯部和広さんが報告]
    * [doc] mroonga_command のドキュメントを追加した。
    * コメントのテーブルのパラメータとして default_tokenizer をサポートした。
    * 既存のテーブルを "FULLTEXT INDEX"だけでなく"INDEX"の対象となる語彙表として使えるようにした。
    * MySQL 5.6.11をサポートした。
    * マルチカラムインデックスでの照合順序をサポートした。 [groonga-dev,01302] [田辺公平さんが報告]
    * groongaの前方一致検索クエリの記法 "XXX*" 向けにパーサーを無効にした状態でのFULLTEXTインデックスをサポートした。
    * [cmake] MySQL 5.5.xのビルド対応をやめた。
    * FULLTEXT INDEXに対するノーマライザー指定をサポートした。
      コメントでノーマライザーを指定できます。指定方法は FULLTEXT INDEX (column) 
      COMMENT 'normalizer "NormalizerXXX"' です。[groonga-dev:01303] [田辺公平さんが提案]
    * Ubuntu 13.04 Raring Ringtailをサポート。

修正
^^^^

    * [ストレージモード] 保存した値を検索できないという不具合を修正した。
      これは数値が意図しないキャストにより丸められていたためです。[#1696]
      [groonga-dev,01266] [smztksさんが報告]
    * [ラッパーモード] 複数のMATCH AGAINSTを使うと正しくないカウント数を返す不具合を修正した。
      [#1702] [groonga-dev,01279] [古田さんが報告]
    * [doc] mroonga_log_level が無視される不具合を修正した。 [groonga-dev,01290]
      [磯部和広さんが報告]
    * mroongaが内部で使用している一時オブジェクトを開放する際にクラッシュしてしまう不具合を修正した。
    * [doc] ストレージエンジンの動作モードの誤字と不明瞭な説明文を修正した。 [鈴木一郎さんが報告]
    * [mysql55] 一行でまとめてインデックスの再作成を行うとクラッシュする不具合を修正した。
      [groonga-dev,01319] [田辺公平さんが報告]

感謝
^^^^

    * smztksさん
    * 古田さん
    * 磯部和広さん
    * 田辺公平さん
    * 鈴木一郎さん

-- 
HAYASHI Kentaro <hayashi@xxxxxxxxxx>

[前][次][番号順一覧][スレッド一覧]