INDEX作成の日々


先日来namazuのセットアップを
り返している
。正確にはINDEXの作成を繰り返している。といっても、別に
INDEXが壊れるということではなくて、INDEX作成に時間がかかりすぎてINDEX作成途
中でリブートがかかるという話。


# 週に一回再起動はWindowsサーバーのお約束:-)


namazuの最新バージョンである2.0.16のWindows版は、現在アルファ版アーカイブ
という状態だが、アーカイブがアルファ版なだけで、要はInstallShieldなどの親切丁寧
な(場合によっては余計なお世話もする)インストーラが付いていない、という話。
Windows用の開発環境を持ち合わせていない(& タダと言われても用意する気が無い)身と
しては、CGIperl moduleのバイナリを用意していただけるだけで十分ありがたい。
既に旧版のnamazuの稼働環境を構築してあるなら、実質的に

  • アーカイブの中身を現在の環境に上書き
  • ActivePerlのバージョンアップ

    (2.0.16はActivePerl 800番台のみサポート)
  • Text:kakasiなどPerl moduleのバージョンアップ
で終わりなはず。「インストール時にインターネットに接続する必要がある」という
点が引っかかるかもしれないが、実際には
  1. このへんから*.ppd
    およびx86/ 以下にあるモジュール本体をダウンロード
  2. *.ppdの置いてあるローカルのディレクトリに、x86という名前のディレクトリを
    作成し、その中に先ほどダウンロードしたモジュール本体を置く

    (要するに上記のサイトと同じディレクトリ構成をローカルHDD内に構築する)
  3. *.ppdの置いてあるローカルのディレクトリをカレントディレクトリにして、
    "ppm install File-MMagic.ppd"のように、ローカルの*.ppdを直接指定してppmコマ
    ンドを実行
と、ppm-inst.batが行っている内容を手動で実行すれば、IP-Unreachableな環境でも
インストールできる。

(参考資料:PPMによ
るモジュールのインストール
)


ちなみに2.0.16ではファイル名による検索がサポートされたが、

  1. mknmzrcの$SEARCH_FIELDに"filename"を追加する必要がある
  2. 検索対象はbasenameのみで、ディレクトリ名は対象とならない
  3. 検索用INDEX(NMZ.field.filename)の生成が必要
という条件があり、上記のWindowsアーカイブに含まれている状態では有効となっ
ていない。


一番の問題は、INDEX作成の対象が、フォルダ構成も含めこれまでほとんど無秩序に
追加されてきたファイル群だということ。全ファイル数はたかだか10万程度だが、人間が全容を把握するには少々数が大きい。何度かINDEX作成を繰り
返し、エラーが出る度に対処(新たなフィルタの追加や、$DENY_FILEの設定変更など)
を繰り返す羽目となっている。


ActiveStateからダウ
ンロードしたPerl Module
のバージョンがCPANのものより古くて(おそらくはメモリリー
クで)mknmzが異常終了する、なんてこともあった。具体的に言うと画像フィル
で必要になるImage::Info(ActiveStateにあるのが1.10でCPANが1.21)。幸い
Pure Perlで書かれたモジュールだったので、nmake.exeだけ調達して


perl Makefile.PL

make install
して対策(笑)


そんなこんなで、初回のINDEX作成が未だ完了していない。