掲示板に検索機能をつける:1. Hyper Estraierをインストールする
スレッドフロート型掲示板
私は2ちゃんねるのようなスレッドフロート型の掲示板を管理しています。スレッド数が多くなってきたため、そろそろ検索機能をつけようと考えました。ネット上で色々と検索した結果、以下の点で Hyper Estraier というものが非常によさそうだと思いました。
- インデックスを使って高速な検索ができる
- 文書のインデックスを短時間に作成できる
- 変更のあった文書のみインデックスを更新できる
- 形態素解析をする
- 対象文書の形式に依存しない
掲示板のスレッドを扱うためには、スレッドを読み込んでインデックスを作成できる必要があります。調べたところ、専用のフィルタを作成することで、どんな文書も検索対象にできるということがわかりました。
Hyper Estraierをインストールする
私が管理している掲示板はSAKURA Internetのレンタルサーバ上にあります。
そこで、全文検索エンジン Hyper Estraier on SAKURA Internet を参考にさせていただきました。
基本的にはリンク先のページに書いてあるのと同じことをしました。
Hyper Estraierの動作には、libiconv、zlib、QDBM が必要です。
zlibは入っています。
libiconv
Hyper Estrairはlibiconv.so.7を要求しますが、SAKURAにはlibiconv.soとlibiconv.so.3しか入っていないため、自前でコンパイルして準備します。
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz tar xvzf libiconv-1.13.1.tar.gz cd libiconv-1.13.1/ ./configure --prefix=/home/myname make make install
zlib
SAKURAにははじめからzlibが入っているため、入れる必要はありません。もし入れるとしたら次のようにします。
wget http://www.zlib.net/zlib-1.2.3.tar.gz tar xvzf zlib-1.2.3.tar.gz cd zlib-1.2.3/ ./configure --prefix=/home/myname make make install
QDBM
SAKURAには(当然?)QDBMは入っていないので、自分でコンパイルします。
wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz tar xvzf qdbm-1.8.77.tar.gz cd qdbm-1.8.77/ ./configure --enable-zlib --prefix=/home/myname make make install
Hyper Estraier
最後にHyper Estraierをインストールします。
wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gz tar xvzf hyperestraier-1.4.13.tar.gz cd hyperestraier-1.4.13/ ./configure --prefix=/home/myname make make install
以上でHyper Estraierがインストールできました。