HyperEstraierを導入してみた
Rubyリファレンスが"503 Service Unavailable"でガッカリなので、
ローカルに保存してあるruby-man-ja-htmlをHyper Estraierで全文検索できるようにしてみました。
簡単、便利、速いのでオススメ。
- http://server/doc/ 配下を検索できるようにする。
- 環境はCentOS 5
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-html でRubyリファレンスを参照できる。
HyperEstraier導入に必要なパッケージを確認
Hyper Estraierは、以下のライブラリを利用しています。予めそれらをインストールしておいてください。
http://hyperestraier.sourceforge.net/intro-ja.html
・libiconv : 文字コード変換。バージョン1.9.1以降(glibcにも同梱)。
・zlib : 可逆データ圧縮。バージョン1.2.1以降。
・QDBM : 組み込み用データベース。バージョン1.8.75以降。
すでに導入されてるものを確認する。
% 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/ ・・・
以上で完了。