MeCab + Senna + Tritonn で MySQL 全文検索を試す
以前、自作 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 に続く