namazu-ml(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "-F" option



shibuya@xxxxxxxxxxxxx wrote:

>> がーん。
>
>あの、気をおとさないでください...
>わたしはもっか Namazu 1.4.0.0-beta-8 を試していまして
>こっちの方が当方に都合がいいかなあと考えているところでして。
>
>REPLACE が複数使えるのは VirtualHost を仕立てているときに
>無視できないメリットなんですよ。

v1.3.0.8 でも複数の REPLACE に対応しています。


>> v1.3.0.8 で、まだそんなバグがあったのか。悲しい…。
>
>skip 処理のファイルが多数あったようで。。。。
>アーカイブを検索してもっと古い版での現象は読んでいたので
>心の用意はありました。

原因がわかりました。 -F オプションで渡している

>>   % mknmz -O /usr/local/namazu/index -F \
>> 	/usr/local/namazu/index/filelist >& log

/usr/local/namazu/index/filelist に重複があったのが原因です。

% sort NMZ.r |uniq -c| sort -nr |head
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_ref.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_9_2.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_9_1.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_9.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_8_2.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_8_1.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_8.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_7_4.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_7_3.html
      2 /usr/local/www/data/htdocs/S/docs-4.2/stoolkit_7_2.html

つまり、 -F オプションで対象ファイルのリストを読み込むときに
は重複のチェックを行っていにも関わらず、インデックスの更新時
には NMZ.r に対して重複チェックを行っているため、

  "NMZ.r (1336) and NMZ.t (1472)are not consistent!"

というエラーが起きるわけです。

というわけで、 -F オプションで対象ファイルのリストを読み込む
ときに重複の除去を行うように手元の mknmz.pl を修正しました。

<http://openlab.ring.gr.jp/namazu/proto/namazu-1.3.0.9-pre-1.tar.gz>

の mknmz.pl に対するパッチをメイル末尾に添付しておきます。こ
のパッチをあてて make mknmz して、インデックスを作り直せば

  "NMZ.r (1336) and NMZ.t (1472)are not consistent!"

の問題は解消されるはずです。確認をお願いします。 >渋谷さん

-- Satoru Takabayashi
今週は Porter の stemmer を Cで実装する予定

*** mknmz.pl~	Tue Aug 10 22:01:49 1999
--- mknmz.pl	Tue Aug 10 22:02:49 1999
***************
*** 1526,1531 ****
--- 1526,1534 ----
  	    push(@tmp2, $_);
  	}
      }
+     my %tmp3 = ();
+     map {$tmp3{$_} = 1} @tmp2;
+     @tmp2 = keys %tmp3;
      @FList = @tmp2;
  }