LoginSignup
3
3

More than 5 years have passed since last update.

mroongaのWindows版を使うには

Last updated at Posted at 2013-07-11

もっとgroongaを知ってもらおう!ということで週刊groongaをはじめました。毎週木曜にgroongaやmroonga、rroongaのトピックを投稿予定です。

いよいよ、gihyo.jpさんでgroongaの隔週更新連載が始まりました!!
第7回の記事も公開されたので、一読をおすすめします。

連載は始まりましたが、利用事例をどんどん紹介していきたいです。(利用事例のストックが尽きたら終了してしまいます。)
groongaやmroonga、rroongaを実際に使っていて利用事例記事を書いてもいいよ、という人をまだまだ募集しています。
詳細はgroonga普及のための協力のお願いを参照してください。

はじめに

MySQLで高速に全文検索するためのオープンソースのストレージエンジンとしてmroonga (むるんが)を公開しています。
最新のバージョンは2013年6月29日にリリースした3.05です。

今回は、mroongaをWindowsで使う方法を紹介します。

mroongaのWindows版について

mroongaは長らくLinux向けにのみパッケージを提供していました。そのため、mroongaはLinux専用というように思っている人がいるかも知れません。

しかし、テスト版の提供を経て、mroonga 3.05からは、Windows版の提供をはじめました。今後は毎月のリリースにWindows版も対象となります。
これにより、mroongaをより幅広いユーザに試してもらえるようになりました。

提供を始めたのはzipパッケージです。解凍するだけで、使えるようになります。まだインストーラ版は提供していないので、そのあたりは今後の課題です。

mroongaのWindows版では、MariaDBを一緒に配布しています。そのため、別途MySQLをインストールする必要はありません。
MariaDBを一緒に配布しているのは利便性もありますが、MariaDBの一部のソースコードを修正する必要があるというのがその理由です。

mroongaのWindows版を使う

mroongaのWindows版では、2種類のzipパッケージを提供しています。32bit版と64bit版の2種類です。

特に理由がないのであれば、64bit版の使用をおすすめします。

それぞれのzipパッケージは以下からダウンロードすることができます。

zipパッケージをダウンロードしたら、任意のディレクトリに解凍します。zipアーカイブのサイズが約90MBと大きいので、それなりに解凍に時間がかかります。

解凍が終わったら、実際にMariaDBを起動しましょう。

cmd.exeを実行して、コマンドプロンプトを表示します。

解凍したディレクトリのbin以下にmysqld.exeがあるので、コマンドプロンプトから以下のコマンドを実行してMariaDBを起動します。

bin\mysqld.exe --console

--consoleオプションをつけると起動過程を確認することができます。

D:\work\mroonga\mariadb-10.0.3-winx64>bin\mysqld.exe --console
130711 11:42:33 InnoDB: The InnoDB memory heap is disabled
130711 11:42:33 InnoDB: Mutexes and rw_locks use Windows interlocked functions
130711 11:42:33 InnoDB: Compressed tables use zlib 1.2.3
130711 11:42:33 InnoDB: CPU does not support crc32 instructions
130711 11:42:33 InnoDB: Initializing buffer pool, size = 128.0M
130711 11:42:33 InnoDB: Completed initialization of buffer pool
130711 11:42:33 InnoDB: highest supported file format is Barracuda.
130711 11:42:33 InnoDB: 128 rollback segment(s) are active.
130711 11:42:33 InnoDB: 10.0.3-MariaDB started; log sequence number 1603054
130711 11:42:33 [Note] Plugin 'FEEDBACK' is disabled.
130711 11:42:33 [Note] Server socket created on IP: '::'.
130711 11:42:33 [Note] Event Scheduler: Loaded 0 events
130711 11:42:33 [Note] bin\mysqld.exe: ready for connections.
Version: '10.0.3-MariaDB'  socket: ''  port: 3306  Source distribution

MariaDBが起動できていることがわかります。

では、次にmysqlクライアントを使ってMariaDBに接続してみます。

別のcmd.exeを実行し、もうひとつコマンドプロンプトを開きます。

もうひとつのコマンドプロンプトでmysql.exeを実行し、起動済みのMariaDBへと接続します。

D:\work\mroonga\mariadb-10.0.3-winx64>bin\mysql.exe
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.3-MariaDB Source distribution

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

MariaDBに接続できていることがわかります。

では、mroongaのセットアップができていることを確認しましょう。

確認にはshow enginesを使います。

MariaDB [(none)]> show engines;
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment            | Transactions | XA   | Savepoints |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV                | YES     | CSV storage engine            | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema            | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine            | NO           | NO   | NO         |
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables            | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| mroonga            | YES     | CJK-ready fulltext search, column store            | NO           | NO   | NO         |
| Aria               | YES     | Crash-safe tables with MyISAM heritage            | NO           | NO   | NO         |
+--------------------+---------+------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

MariaDB [(none)]>

mroongaがプラグインとしてインストールされていることがわかります。

インストールのドキュメントでは、プラグインのインストールが必要みたいに書いていますが、zipパッケージでは実はこれはすでに対応済みです。
mroongaをすぐに使えるようになっています。

では、次にmroongaを試してみましょう。試すだけなので、testデータベースを使います。

MariaDB [(none)]> use test;
Database changed
MariaDB [test]> show tables;
Empty set (0.00 sec)

ストレージモードでの動作を確認してみましょう。

MariaDB [test]> CREATE TABLE diaries (id INT PRIMARY KEY AUTO_INCREMENT, content
 VARCHAR(255), FULLTEXT INDEX(content)) ENGINE = mroonga DEFAULT CHARSET utf8;
Query OK, 0 rows affected (0.38 sec)

まずはdiariesテーブルを作りました。

MariaDB [test]> INSERT INTO diaries (content) VALUES ("It'll be fine tomorrow.")
;
Query OK, 1 row affected (0.01 sec)

MariaDB [test]> INSERT INTO diaries (content) VALUES ("It'll rain tomorrow.");
Query OK, 1 row affected (0.00 sec)

テストデータを投入しました。

MariaDB [test]> SELECT * FROM diaries WHERE MATCH(content) AGAINST("fine");
+----+-------------------------+
| id | content                 |
+----+-------------------------+
|  1 | It'll be fine tomorrow. |
+----+-------------------------+
1 row in set (0.01 sec)

全文検索もできていることがわかります。

もうすこし追加でデータを登録しましょう。

MariaDB [test]> INSERT INTO diaries (content) VALUES ("It's fine today. It'll be fine tomorrow as well.");
Query OK, 1 row affected (0.00 sec)

MariaDB [test]> INSERT INTO diaries (content) VALUES ("It's fine today. But it'll rain tomorrow.");
Query OK, 1 row affected (0.00 sec)

追加でデータを登録したので、全文検索のマッチの度合いをスコアから確認してみましょう。以下のクエリを実行します。

MariaDB [test]> SELECT *, MATCH (content) AGAINST ("fine") FROM diaries WHERE MATCH (content) AGAINST ("fine") ORDER BY MATCH (content) AGAINST ("fine")
 DESC;
+----+--------------------------------------------------+----------------------------------+
| id | content                                          | MATCH (content) AGAINST ("fine") |
+----+--------------------------------------------------+----------------------------------+
|  3 | It's fine today. It'll be fine tomorrow as well. |    233018 |
|  1 | It'll be fine tomorrow.                          |    116509 |
|  4 | It's fine today. But it'll rain tomorrow.        |    116509 |
+----+--------------------------------------------------+----------------------------------+
3 rows in set (0.00 sec)

複数マッチするほどスコアの値が大きいことがわかります。

ひとまず動作をさらっと確認できたので、MariaDBを終了させましょう。

一旦mysql.exeを終了します。

MariaDB [test]> quit
Bye

次に、mysqladmin.exeを使ってシャットダウンします。

D:\work\mroonga\mariadb-10.0.3-winx64>bin\mysqladmin.exe -u root shutdown

これで、MariaDBの起動からmysqlクライアントでの接続、動作確認して、MariaDBの終了するところまでできました。

まとめ

今回は、mroongaをWindowsで使う方法を紹介しました。

mroongaに興味を持ったなら、まずはダウンロードして試してみてください。

mroongaの基本的な動作を知るためのユーザガイドもあります。ダウンロードしたら試してみてください。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3