[ANN] Mroonga 7.07 - Fast fulltext search for all languages on MySQL

Kentaro Hayashi <[email protected]> Fri, 13 Oct 2017 13:30:11 +0900
Newsgroups gmane.comp.db.mysql.general
Message-ID <[email protected]>
Hi,

Mroonga 7.07 has been released!

Mroonga is a MySQL storage engine that supports fast fulltext search
and geolocation search.  It is CJK ready. It uses Groonga as a storage
and fulltext search engine.

Document:
   http://mroonga.org/docs/

How to install: Install Guide
   http://mroonga.org/docs/install.html

How to upgrade: Upgrade Guide
   http://mroonga.org/docs/upgrade.html

Blog:
   http://mroonga.org/en/blog/2017/10/12/mroonga-7.07.html

Changes:
   http://mroonga.org/docs/news.html#release-7.07

Here is the topic in this release.

  * MariaDB 10.1/10.2 package has been supported on CentOS 6/7
  * mroonga_query_expand UDF has been supported

### MariaDB 10.1/10.2 package has been supported on CentOS 6/7

In this release, official MariaDB 10.1/10.2 packages has been
supported on CentOS 6/7.

To install on each supported environment, see install documents.

* MariaDB 10.1 on CentOS 6
  http://mroonga.org/docs/install/centos.html#centos-6-with-mariadb-10-1-package
* MariaDB 10.2 on CentOS 6
  http://mroonga.org/docs/install/centos.html#centos-6-with-mariadb-10-2-package
* MariaDB 10.1 on CentOS 7
  http://mroonga.org/docs/install/centos.html#centos-7-with-mariadb-10-1-package
* MariaDB 10.2 on CentOS 7
  http://mroonga.org/docs/install/centos.html#centos-7-with-mariadb-10-2-package

### mroonga_query_expand UDF has been supported

In this release, mroonga_query_expand UDF has been supported.

Here is the sample schema to use this UDF.

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

  CREATE TABLE synonyms (
    term varchar(255),
    synonym varchar(255),
    INDEX (term)
  ) ENGINE= Mroonga DEFAULT CHARSET utf8;

diaries is table for full text search. synonym table is used to define
synonyms.

Then insert sample data:

  INSERT INTO synonyms VALUES ('Groonga', 'Groonga Mroonga Rroonga');

  INSERT INTO diaries (content) VALUES ("Groonga is fast.");
  INSERT INTO diaries (content) VALUES ("Mroonga is fast.");
  INSERT INTO diaries (content) VALUES ("PGroonga is fast.");

Let's use mroonga_query_expand UDF.

If you want to search with synonym term, just use
mroonga_query_expand("synonyms", "term", "synonym", "Groonga"). This
enable you to do full text search by 'Groonga', 'Mroonga', 'Roonga' at
once even though specified term is only 'Groonga'.

  mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST(mroonga_query_expand("synonyms", "term", "synonym", "Groonga") IN BOOLEAN MODE);
  +----+------------------+
  | id | content          |
  +----+------------------+
  |  1 | Groonga is fast. |
  |  2 | Mroonga is fast. |
  +----+------------------+
  2 rows in set (0.01 sec)

Regards,


-- 
Kentaro Hayashi <[email protected]>
signature.asc (application/pgp-signature, 833 B)
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEcZ6y2T2+nE0h+6Bk9/t1xWbtIOMFAlngQVMACgkQ9/t1xWbt
IOOebxAAoi4WKDtQk2HxE5dURzPmDUbeWDuu1FQq+7ZS4JjubhQiDZr7oeSPqcIj
Mayax91/F+D703V4FRsuKH8Exedf3vJqYhBOiNEEV2Csmpk6bCtYPioSl3dfBVGd
ADdYvex88nbD4/VZu8tPO/7pQBeU6JCEoZUz0bGoqyYT5nWzdnGqhErkCnCCmYGd
ehboOu08DEYkVm/KgaeTtpSLHrYyOOpehMW2g4NDFM+q0nofo9u8v7QHmZpgREZk
NW9GZNS7Lqg5DdeWRJyBuXafJeFFMqpny05T0LKBCzTde/ph9VRQzal1j9uHRwab
nRf2jRzJeVmv7/ah6PBiRfT+QJNHGfvjz2WolnCtMe+VKoXbf9L+Cc9JFO21Qs/H
s0V9a3U1hBnRIMmgJBP5kPWYAvMsT1RdIrzjc0FoPMYbDqiMspvW/iblRxAMfB6Q
gek/ypZ0s7qRFMJQVVbNrvNLGFmV+f5425B7DeAQYZ0sRgRQjsOcuL6g0jchtmTx
iooktTWMFgvkt1ixNl2YxeWBiiiDB8AWR0j4SYlswczNrgZlNqjGKBBxZyxEyie7
NPspXJgZPNgE2zgLWF/K1pa75X56jdLm5SNt/B3sIbXHsVxvJlUlcqa8pvjN3rfl
wpVq3/kO3up2FMUhkD5Py3ST6jg3R/OapPwKHEtp0xTXkAlzkIs=
=85PL
-----END PGP SIGNATURE-----