hakeの日記

Windows環境でプログラミングの勉強をしています。

namazuのインデックス構築

namazuによる全文検索は非常に便利なのですが如何せんインデックス作成に時間がかかりすぎます、数千件程度のファイルのインデックス作成に数時間もかかるのははっきりいって実用的ではありません。
そこで調べたところnamazuWindows PCでも使用できるのですね。私の場合ザウルスの/hdd3のバックアップをPC上にとってあるので、そのデータをそのまま利用して試したところザウルスで6時間かかっていた処理が25分で終了しました(環境はWindows XP,Pen4-2.2GHz,memory 1GBのノートPCです)
これなら充分に実用的です。

Windows PCでnamazuを使用可能にする

全文検索システムNamazu(Windows用)の設定覚書の「5. namazuのインストールでの追記事項」を参考にさせていただきました。

  • ASPNからActive Perlを入手してインストール。Download ActivePerlで名前やEメールの入力を促されますが無視してNextをクリックでダウンロード可能です。Windows版のMSIパッケージをダウンロード。現在の最新版は5.8.7です、自分は以前にインストールしていた5.8.4で実行しましたが特に問題はありませんでした。
  • 全文検索システム Namazu for Win32から Namazu 2.0.14 for Win32とkakasi-2.3.4.zipを入手してインストール

インデックスの構築

  • 作成対象データはF:\ZaurusHDD3\Documents\Web_Files\Pagememo_Filesフォルダにあるので、ここで昨日と同様にインデックス作成。作業はコマンドプロンプトで行う
> F:
> cd ZaurusHDD3\Documents\Web_Files\Pagememo_Files
> mknmz -k --media-type=="text/html" .
  • 一応検索可能か確認、以下で作成したsearch.htmlをブラウザで表示
> namazu -a -h "foo" . > search.html
  • 作成されたインデックスデータのうちファイルの最後が、.de/.es/.fr/.plのファイルは不要なので削除
  • インデックスデータをザウルスの所定の位置へコピー。このときに名前が8.3形式のファイルの名前の大文字部分が小文字になってしまう場合があるけど、一旦PC側で長いファイル名にしておいてザウルス側で元に戻すと良い(例:NMZ.r → NMZ.r.zzzzz → NMZ.r)

~/namazurcの設定

PC上で構築したインデックス内のパス情報は当然PC上のパスを示している、これをザウルスのパスに置換させる。具体的には「/F\|ZaurusHDD3/Documents/Web_Files/Pagememo_Files/」を「/home/zaurus/Documents/Web_Files/Pagememo_Files/」にする。
~/.namazurcに以下の様に記述

Replace     /F\|ZaurusHDD3/     /home/zaurus/

これでPC上で作成したインデックスを使用してザウルス上で検索が可能になりました。