掲示板に検索機能をつける:1. Hyper Estraierをインストールする

スレッドフロート型掲示板

私は2ちゃんねるのようなスレッドフロート型の掲示板を管理しています。スレッド数が多くなってきたため、そろそろ検索機能をつけようと考えました。ネット上で色々と検索した結果、以下の点で Hyper Estraier というものが非常によさそうだと思いました。

  • インデックスを使って高速な検索ができる
  • 文書のインデックスを短時間に作成できる
  • 変更のあった文書のみインデックスを更新できる
  • 形態素解析をする
  • 対象文書の形式に依存しない

掲示板のスレッドを扱うためには、スレッドを読み込んでインデックスを作成できる必要があります。調べたところ、専用のフィルタを作成することで、どんな文書も検索対象にできるということがわかりました。

Hyper Estraierをインストールする

私が管理している掲示板はSAKURA Internetのレンタルサーバ上にあります。
そこで、全文検索エンジン Hyper Estraier on SAKURA Internet を参考にさせていただきました。
基本的にはリンク先のページに書いてあるのと同じことをしました。

Hyper Estraierの動作には、libiconvzlibQDBM が必要です。
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がインストールできました。