rpm -ivh http://packages.groonga.org/centos/groonga-release-1.1.0-1.noarch.rpm
yum makecache
yum install -y groonga groonga-devel groonga-tokenizer-mecab groonga-normalizer-mysql
mkdir /home/vagrant/mysql_src
cd /home/vagrant/mysql_src
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.46.tar.gz
tar xfvz mysql-5.5.46.tar.gz
mv mysql-5.5.46 /usr/local/src/mysql-5.5.46
mkdir -p /usr/local/build/mysql-5.5.46
yum install -y ncurses-devel cmake
cd /usr/local/build/mysql-5.5.46
cmake /usr/local/src/mysql-5.5.46
make && make install
mkdir /home/vagrant/mroonga_src
cd /home/vagrant/mroonga_src
wget http://packages.groonga.org/nightly/mroonga-5.10.2015.12.05.tar.gz
tar xfvz mroonga-5.10.2015.12.05.tar.gz
cd mroonga-5.10.2015.12.05
./configure \
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig \
--with-mysql-source=/usr/local/src/mysql-5.5.46 \
--with-mysql-build=/usr/local/build/mysql-5.5.46 \
--with-mysql-config=/usr/local/mysql/bin/mysql_config
make && make install
groupadd mysql
useradd -g mysql mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cd /usr/local/mysql
./scripts/mysql_install_db
echo "[client]" >> /etc/my.cnf
echo "socket=/var/lib/mysql/mysql.sock" >> /etc/my.cnf
echo "default-character-set = utf8mb4" >> /etc/my.cnf
sed -i -e "5i character-set-server = utf8mb4" /etc/my.cnf
/etc/init.d/mysql start
/usr/local/mysql/bin/mysql -u root < /usr/local/share/mroonga/install.sql
CREATE TABLE data (
content text,
FULLTEXT INDEX bigram (content),
FULLTEXT INDEX mecab (content) COMMENT 'parser "TokenMecab"'
) ENGINE=Mroonga
DEFAULT CHARSET=utf8mb4;
-- Query OK, 0 rows affected, 2 warnings (0.10 sec)
INSERT INTO data VALUES ('私の名前は中野です。');
-- Query OK, 1 row affected (0.02 sec)
SET mroonga_boolean_mode_syntax_flags = "SYNTAX_SCRIPT";
-- Query OK, 0 rows affected (0.00 sec)
SELECT content,
MATCH (content)
AGAINST ('query("data#bigram.index * 3 || data#mecab.index * 10", "中野 OR 名")'
IN BOOLEAN MODE)
FROM data
WHERE MATCH (content)
AGAINST ('query("data#bigram.index * 3 || data#mecab.index * 10", "中野 OR 名")'
IN BOOLEAN MODE);
-- Empty set (0.02 sec)
select * from data;
+--------------------------------+
| content |
+--------------------------------+
| 私の名前は中野です。 |
+--------------------------------+
1 row in set (0.00 sec)
select mroonga_command("table_list");
[
[
[
"id",
"UInt32"
],
[
"name",
"ShortText"
],
[
"path",
"ShortText"
],
[
"flags",
"ShortText"
],
[
"domain",
"ShortText"
],
[
"range",
"ShortText"
],
[
"default_tokenizer",
"ShortText"
],
[
"normalizer",
"ShortText"
]
],
[
260,
"data",
"mroonga_test.mrn.0000104",
"TABLE_NO_KEY|PERSISTENT",
null,
null,
null,
null
],
[
262,
"data-bigram",
"mroonga_test.mrn.0000106",
"TABLE_PAT_KEY|PERSISTENT",
"ShortText",
null,
"TokenBigram",
"NormalizerAuto"
],
[
264,
"data-mecab",
"mroonga_test.mrn.0000108",
"TABLE_PAT_KEY|PERSISTENT",
"ShortText",
null,
"TokenMecab",
"NormalizerAuto"
],
[
256,
"mroonga_operations",
"mroonga_test.mrn.0000100",
"TABLE_NO_KEY|PERSISTENT",
null,
null,
null,
null
]
]