要使用mroonga的Windows版本
為了讓更多人了解groonga,我們開始了每週一次的groonga週報。我們計劃每週四發布有關groonga、mroonga和rroonga的主題文章。
终于,在gihyo.jp开始了groonga的每两周更新系列连载!由于第7篇文章也已经发布,请强力推荐阅读。
-
- 「第1回 全文検索エンジンgroongaを紹介します!」
-
- 「第2回 groongaをRuby On Railsでも使ってみた ~chikamap.comの事例から」
-
- 「第3回 すべてのMySQLユーザに高速な全文検索機能を! – mroongaの紹介」
-
- 「第4回 rroongaを使ったソースコード検索エンジンMilkode」
-
- 「第5回 Rubyでサーバ要らずの高速全文検索! – rroongaの紹介」
-
- 「第6回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(1)」
- 「第7回 [実録] MySQL向け全文検索エンジン「Tritonn」から「mroonga」への移行ガイド(2)」
雖然連載已經開始了,但我們希望能不斷介紹使用案例。(如果使用案例用完了,就會結束連載。)
我們還在尋求那些真正使用groonga、mroonga、rroonga並願意寫使用案例文章的人。
詳情請參閱有關協助普及groonga的合作請求。
首先
我们发布了mroonga(むるんが)作为一个用于在MySQL上快速进行全文搜索的开源存储引擎。
最新版本是在2013年6月29日发布的3.05。
这次将介绍在Windows上使用Mroonga的方法。
关于Mroonga的Windows版本
mroonga长期以来只提供Linux系统的软件包。因此,可能有人认为mroonga是仅限于Linux系统的。
不过,在提供了测试版后,从mroonga 3.05开始,我们也开始提供Windows版了。未来,每个月的发布将包括Windows版的内容。这样一来,我们可以让更多的用户尝试mroonga。
我们开始提供的是ZIP包。只需解压缩即可使用。目前尚未提供安装器版本,所以这方面是未来的课题。
在Mroonga的Windows版本中,我们同时提供了MariaDB的安装包。因此,您无需单独安装MySQL。
我们之所以同时提供MariaDB,一方面是为了方便,另一方面是因为需要修改一部分MariaDB的源代码。
使用Mroonga的Windows版本。
mroonga的Windows版本提供了两种不同的zip包。分别是32位和64位两种版本。
如果没有特别的理由的话,建议使用64位版本。
每个zip包可以从以下位置下载。
-
- mariadb-10.0.3-with-mroonga-3.05-win32.zip
- mariadb-10.0.3-with-mroonga-3.05-winx64.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。
总结
这次我们介绍了在Windows上使用Mroonga的方法。
如果对Mroonga感兴趣的话,首先请下载并试用一下。
还有一份用于了解Mroonga基本操作的用户指南。您可以下载后进行尝试。