Close

MariaDBと Mroonga

かなり前のバージョンから同梱されているので有効にする。

INSTALL PLUGIN Mroonga SONAME 'ha_mroonga.so';
CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

有効なったのを確認。

MariaDB [demo2]> SHOW ENGINES;
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                                         | Transactions | XA   | Savepoints |
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+
~省略~
| Mroonga            | YES     | CJK-ready fulltext search, column store                                                         | NO           | NO   | NO         |
~省略~
+--------------------+---------+-------------------------------------------------------------------------------------------------+--------------+------+------------+

エンジンに Mroongaを指定してフルテキストインデックス付きのテーブルを作る。

CREATE TABLE demouni_list(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255),
  FULLTEXT INDEX (col_name_2)
) ENGINE = Mroonga DEFAULT CHARSET utf8;

もしくは既存のテーブルのエンジンを Mroongaに変更&フルテキストインデックスを作成。

alter table demounit_list engine=Mroonga;
alter table demounit_list add fulltext index (name);

検索してみる。

select no from demounit_list where match(demounit_list.name) against('+DC' in boolean mode);

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)