Namazu の MS-Office ファイルインデックス生成の高速化(仮)

H.Suzuki (setter AT i-red DOT info)
Last update: 2002/03/19

“やってみたらこうなった+いいかげん” なものですので、軽く流してください。
検索性能が落ちるのは覚悟の上です(^^;;;

BACK



文書が、1300 くらいしかないので甘く見ていたのだが、 Excel や、Word ファイルを検索対象にした場合、元ファイルが数メガバイトなのに、 mknmz のプロセスサイズが数百メガバイトとかになって、さっぱり動かなくなってしまう場合があり、 いつまでたってもインデックスが生成できないので、 フィルタの構成をちょっと見直してみました。
以下、環境は、
AMD Duron/500M 
128MB SDRAM
20GB x 2 HDD
Vine-2.1.5
Namazu-2.0.10 (rpm でアップデート)
xlHtml-0.2.9.9 (tar ball からインストール)0.4 は cole がうまくインストールできなかったのでパス (^^;;
wvWare-0.7.1 (tar ball からインストール)
lv-4.49.3   (tar ball からインストール)
nkf-1.92 (Vine 付属:パッチはあたっているようです)
です。

まず、msword フィルタで、wvHtml を使用しているのを止めて、
wvWml に変更しました。
これで、吐き出されるコンテンツが簡素化されます。

* wvHtml:  convert your Word document into HTML4.0
# wvWml:  converts word to WML for viewing on portable devices like WebPhones and Palm Pilots.

この場合、画像を吐き出してくれる必要は無いので、
本当は、wvText を使うのが一番かと思うのですが、ちょっとやってみて動かなかったので、
深く追求してません (^^;;;
また、antiword-0.32 とかも良さそうだったので、テスト中(かなり早くなりそう)
でも、この場合、HTML のタグを基準にした重み付けができないです。
あと、本文しか抽出しないので、テキストボックス内の文字などは無視されます。

参考のフィルタファイルは、最後に添付します。

msword.pl で、変更した点。
wvWare 0.7.1 の場合、--targetdir が強制されるので、その部分を追加(いいかげん)。
wvHtml を wvWml に変更。

次に、xlHtml-0.2.9.9 で大量の空白セル(<td>&nbsp</td>)が吐き出されるのを避けるため、
これを除去するオプションがあるので、使ってみた。

excel.pl で、変更した点
xlHtml のオプションに、
-te: Trims empty rows & columns at the edges of a worksheet
を追加。

powerpoint.pl に関しては、msword.pl をコピーし、
wvHtml を pptHtml に変更し、.ppt を application/powerpoint とした。
なお、pptHtml は、PowerPoint8 用みたいなので、古いファイルは、
ファイル名程度しかインデックスの対象にできないみたいです。

あと、いいかげんなフィルタ(といえるかどうか)として、
RF-FLOW 用?をつくってみた。
ファイル内にプレーンテキストが見えているものに関しては、
このくらいのフィルタでも何とかなるかも。

これで、3日かかっていたインデックス生成が2日程度で収まった。

問題:
たまに、ループに陥ってしまっているように見える?ファイルがありそうです。

Status:
現在、 1,396  の文書がインデックス化され、  219,951  個のキーワードが登録されています。 
文書総サイズ 430MBytes
Index サイズ  10MBytes
# これっぽっちしかないのになぁ...
フィルタファイル(tar.gz)