要使用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基本操作的用户指南。您可以下载后进行尝试。

广告
将在 10 秒后关闭
bannerAds