以前、自作 N-gram の php プログラムを書いて、日本語全文検索を MySQL の標準機能で試したが、文をまるごと突っ込んで検索するといった場合、AND検索が著しく行われるため、速度が落ちることがわかった。メジャーな組み込み型全文検索を試してみる。
を参考にした。

ダウンロードしてきたパッケージ

MeCab のビルドとインストール

$ ./configure –prefix=/usr –with-charset=utf8
$ make
$ sudo make install

Mecab-ipadic のインストール

$ ./configure –prefix=/usr –with-charset=utf8
$ make
$ sudo make install

Senna のビルドとインストール

$ ./configure –prefix=/usr
$ make
$ sudo make install

Tritonn (MySQL) のビルドとインストール

$ ./configure \
–prefix=/usr/local/mysql-5.0.45 \
–localstatedir=/usr/local/mysql-5.0.45/data \
–libexecdir=/usr/local/mysql-5.0.45/bin \
–enable-thread-safe-client \
–enable-local-infile \
–enable-assembler \
–with-pic \
–with-fast-mutexes \
–with-zlib-dir=bundled \
–with-big-tables \
–with-yassl \
–with-readline \
–with-archive-storage-engine \
–with-blackhole-storage-engine \
–with-example-storage-engine \
–with-federated-storage-engine \
–with-innodb \
–with-charset=utf8 \
–with-extra-charsets=all \
–with-mysqld-user=mysql \
–with-senna –with-mecab
$ make
$ make bin-dist

※ make bin-dist を実行すると バイナリ配付版と同じ内容の tarball を作成する。

/usr/local に配備および初期設定

# cp mysql-5.0.45-linux-i686.tar.gz /usr/local
# cd /usr/local
# gunzip -c mysql-5.0.45-linux-i686.tar.gz | tar xvf -
# ln -s mysql-5.0.45 mysql
# cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d
# scripts/mysql_install_db
# /etc/init.d/mysql.server start

UTF-8 に設定

# vi /etc/my.cnf

/etc/my.cnf を編集して下記のエントリ

[client]
default-character-set=utf8

/var/senna を作る

# mkdir /var/senna
# cd /var/senna
# vi senna.conf

senna.conf を作成して下記を定義する。

DEFAULT_ENCODING utf8

MeCab + Senna + Tritonn で MySQL 全文検索を試す(2) - Tosshi Note に続く