Carpe Diem

  Top > スポンサー広告> MySQL > 全文検索エンジン「mroonga」のインストール  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

全文検索エンジン「mroonga」のインストール

2012 - 12/27 [Thu] - 14:47

groongaというSQLの検索クエリを高速化させるための検索エンジンがあります。
Like文で検索させるよりも圧倒的に検索速度が向上します。
今回はgroongaのMySQL用ストレージエンジンであるmroongaをインストールしてみる。

※今回はUbuntu12.04でのインストールです。

まずは公式のインストールドキュメントにそってインストール。

※しばしば「MySQLのバージョンが更新されると使えなくなる」という報告が上がっていますが、作者さんがそれに応じて対応してくださるようなのでUbuntuはあまり心配せず導入できます。

◆インストール
パッケージのリストの追加

$ sudo emacs -nw /etc/apt/sources.list.d/groonga.list
deb http://packages.groonga.org/ubuntu/ precise universe
deb-src http://packages.groonga.org/ubuntu/ precise universe


キーリング等登録してインストール
$ sudo apt-get update
$ sudo apt-get -y --allow-unauthenticated install groonga-keyring
$ sudo apt-get update
$ sudo apt-get -y install mysql-server-mroonga

トークナイザーとして MeCab を利用したい場合はgroonga-tokenizer-mecabをインストール
$ sudo apt-get -y install groonga-tokenizer-mecab


◆インストール確認

MySQLにログインして以下のようにmroongaがあったらOK

mysql> SHOW ENGINES;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
| mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)


◆動作確認
動作を確認するために適当なテーブルを作成します。

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> use test;
Database changed
mysql> CREATE TABLE diaries (
    ->    id INT PRIMARY KEY AUTO_INCREMENT,
    ->   content VARCHAR(255),
    ->   FULLTEXT INDEX (content)    #カラムの検索に検索エンジン用のインデックスを貼る
    -> ) ENGINE = mroonga DEFAULT CHARSET utf8;  
  #ストレージエンジンにmroongaを使用する
Query OK, 0 rows affected (0.09 sec)
mysql> INSERT INTO diaries (content) VALUES ("明日の天気は晴れでしょう。");
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO diaries (content) VALUES ("明日の天気は雨でしょう。");
Query OK, 1 row affected (0.00 sec)


実際に検索してみます。
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST("晴れ");
+----+-----------------------------------------+
| id | content |
+----+-----------------------------------------+
| 1 | 明日の天気は晴れでしょう。 |
+----+-----------------------------------------+
1 row in set (0.00 sec)


これは以下のLike文と同義です。
mysql> SELECT * FROM diaries WHERE content like "%晴れ%";


基本的な使い方は「groongaチュートリアル」を参考にしてください。



ソース:
UbuntuのMySQLに検索エンジン「mroonga(groonga)」をインストールしてみる
Ubuntu 12.10 へ mroonga をインストールする

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。