[Namazu-users-ja 421] Re: インデックス作成に時間がかかった場合の暫定対処について

Yukio USUDA usuda @ hsba.go.jp
2005年 6月 9日 (木) 12:44:06 JST


臼田です

# namazu-develop-ja にも送信します

nakashima-k wrote:

> 現在以下の二つの原因でインデックス作成に時間がかかり、他のファイルがイン
> デックス化されにくいという事象で困っています。
> 
> 1.最終セルが広い範囲に設定されたExcelで、xlhtmlにより大きなHTMLファイ
> ルが生成されてしまう場合
> 「[Namazu-devel-ja 405] Re: Excel の INDEX 作成に異常に時間がかかる」と
> 同事象
> 
xlhtml が巨大なテーブルを作成してしまうことが filter/html.pl 内の正規表現
マッチングで時間を要する原因の一つになっているのであれば
filter/excel.pl に下記のように一行追加することで改善されるかもしれません。

$ diff -c /usr/local/share/namazu/filter/excel.pl.org /usr/local/share/namazu/filter/excel.pl
*** /usr/local/share/namazu/filter/excel.pl.org Thu Jun  9 12:15:00 2005
--- /usr/local/share/namazu/filter/excel.pl     Thu Jun  9 12:15:48 2005
***************
*** 155,160 ****
--- 155,162 ----
      # Because xlHtml generate poor <TITLE>/foo/bar/NMZ.excel.tmp</TITLE>.
      $$cont =~ s!<TITLE>.+</TITLE>!!;
  
+     $$cont =~ s!<TD>&nbsp;</TD>!!g;
+ 
      html::html_filter($cont, $weighted_str, $fields, $headings);
  
      gfilter::line_adjust_filter($cont);

今まで報告されている例が全てこれに該当する物かどうかは不明です。
特定のバージョンの Perl で生じる現象であるためか、具体な報告が不足しています。
修正前後で改善があれば、報告をしてもらえると次期バージョンへ反映できる
と思います。


> 2.ファイル自体が破損している場合(MS-Wordで確認)
略
> ・filterの処理が一定時間以上かかった場合、その処理(ファイル)をスキップす
>> 
こちらは外部のプログラム側に異常時処理を強化してもらうのが本筋だと思いますが
こういう機能があると安心かもしれませんね。
しかし、遅い機械で実行する場合もあるので標準ではタイムアウト処理はしないように
して、必要な方だけ選択できるようにする必要があるでしょう。
システムコールは OS 依存関数になるので、バージョン別の実装状況(特にWin32)
と動作の確認が必要ですね。

臼田幸生




Namazu-users-ja メーリングリストの案内