[Namazu-win32-users-ja 1042] Re: HTMLのhタグ部分がインデックスされない問題

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2007年 10月 6日 (土) 00:43:04 JST


寺西です。

Tadamasa Teranishi wrote:
> 
> Kuroda wrote:
> >
> > 2.問題の状況
> >     HTMLファイルのhタグの部分がインデックスされません。mknmz(その後
> >   searchsで検索)およびnmzcatで調べましたが、hタグの部分が取り出され
> >   ないようです。
> 
> どうやら
>   -x, --no-heading-summary HTML のヘディングによる要約作成を行わない
> に関するバグのようです。
...
> -x を付けると回避できますが、本来の -x オプションの動作と逆な気が
> します。
> これについては調べて、次のバージョンでは直したいと思います。

失礼。勘違いしていました。2.0.17 の filter/html.pl は正常に動作して
いました。

 > <Hn> タグは見出しを指定するタグです。
 > 
 >  > 見出しの順序や付け方はHTML DTDで定められてはいませんが、その文書を
 >  > 別の形式に変換する際に問題にならないようにするために、(例えばH1
 >  > からH3というように)レベルを飛ばすのは望ましくありません。 
 > 
 > となっており、本来、文字サイズを変更する用途に使うべきではありませ
ん。

こっちの影響でした。

つまり、H3 を文字サイズの変更に使っている今回のケースでは、<H3>タグの
要素の文字列が長すぎて mknmzrc の $INVALID_LENG の制限に引っかかって
いました。

mknmzrc の中身を確認すると

#
# The max length of a HTML-tagged string which can be processed for
# term weighting.
# NOTE: There are not a few people has a bad manner using
#       <h[1-6]> for changing a font size.
#
$INVALID_LENG = 128;


と書かれています。(バッドマナー)
ですので、128 文字までは OK ですが、それを超える場合は反映されません。

対処方法としては、HTML を書き換えて、文字サイズの変更目的に <Hn>タグ
は使わないか、あるいは $INVALID_LENG に大きな値を設定するかです。


なお、HEAD, development-2-1 の filter/html.pl にはバグがあり、この
機能が働いていないため、結果的にうまくいったように見えただけでした。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E




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