HyperEstraierを導入してみた

Rubyリファレンスが"503 Service Unavailable"でガッカリなので、
ローカルに保存してあるruby-man-ja-htmlをHyper Estraier全文検索できるようにしてみました。
簡単、便利、速いのでオススメ。

Rubyリファレンスを保存

# mkdir -p /var/www/html/doc/
# cd /var/www/html/doc/
# wget ftp://ftp.ruby-lang.org/pub/ruby/doc/ruby-man-ja-html-20051029.tar.gz
# tar xvfz ruby-man-ja-html-20051029.tar.gz
# mv ruby-man-ja-html-20051029 ruby-man-ja-html

http://server/doc/ruby-man-ja-htmlRubyリファレンスを参照できる。

HyperEstraier導入に必要なパッケージを確認

Hyper Estraierは、以下のライブラリを利用しています。予めそれらをインストールしておいてください。
・libiconv : 文字コード変換。バージョン1.9.1以降(glibcにも同梱)。
・zlib : 可逆データ圧縮。バージョン1.2.1以降。
・QDBM : 組み込み用データベース。バージョン1.8.75以降。

http://hyperestraier.sourceforge.net/intro-ja.html

すでに導入されてるものを確認する。

% rpm -qa glibc
glibc-2.5-12
% rpm -qa zlib
zlib-1.2.3-3

libiconvとzlibはたぶん大丈夫。

QDBMを導入

ソースから導入する。

% wget http://nchc.dl.sourceforge.net/sourceforge/qdbm/qdbm-1.8.76.tar.gz
% tar xvfz qdbm-1.8.76.tar.gz 
% cd qdbm-1.8.76/ 
% ./configure --enable-zlib| tee configure.log 2>&1
% make | tee make.log 2>&1 
% sudo make install | tee make-install.log 2>&1

デフォルトで/usr/local/にいろいろ入ります。
zlibを有効にするのがオススメらしいので従います。

HyperEstraierを導入

こちらもソースから導入する。

% wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.10.tar.gz
% tar xvfz hyperestraier-1.4.10.tar.gz 
% ./configure | tee configure.log 2>&1
% make | tee make.log 2>&1 
% sudo make install | tee make-install.log 2>&1

これでHyper Estraier関連の導入は完了。

検索用のインデックスファイルを作成

/var/www/doc_casket/にインデックスを作成します。

# cd /var/www/
# estcmd gather -il ja -sd doc_casket /var/www/html/doc

ブラウザから検索できるようにする

http://server/doc/search/estseek.cgi に検索用CGIを設置します。

# mkdir -p /var/www/html/doc/search
# cp /usr/local/libexec/estseek.cgi /var/www/html/doc/search/
# cp /usr/local/share/hyperestraier/locale/ja/estseek.* /var/www/html/doc/search/

/var/www/html/doc/search/estseek.conf を編集します。
(修正箇所のみ↓)

indexname: /var/www/doc_casket
・・・
replace: ^file:///var/www/html/doc/{{!}}http://server/doc/
・・・

以上で完了。