Namazu-users-ja(旧)


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

Re: インデックス更新時に文書数およびキーワード数が正しく更新されない



NISHIHARA Yoshiaki <nisihara@xxxxxxxxxxxxx> wrote:

>mknmzを使用して新規にインデックスを作成した場合は、インデックス対象の
>文書数およびキーワード数がが正しくカウントされるのですが、その後
>--updateオプションを使用してインデックスを差分更新していくと、
>2回目の差分更新以降、文書数およびキーワード数が正しくカウント
>されません。下記に添付したNMZ.logでは、新規作成以降2回しか
>更新していないのでわかりにくいのですが、どうやら
>(今回追加された文書数orキーワード数)−(前回追加された文書数orキーワー
>ド数)
>を前回の総文書数or総キーワード数に足しこんで、
>今回の総文書数or総キーワード数としているようです。

たしかに変ですね。おそらく NMZ.status ファイルの更新に失敗し
ているのだと思います。 NMZ.log の内容と一緒に NMZ.status ファ
イルの内容を見せてもらえませんか?

あてずっぽうですが、mknmz の get_status という関数を次のよう
に修正すると、もしかしたら解決するかもしれません。

sub get_status($) {
    my ($key) = @_;

    my $fh = util::fopen($var::NMZ{'status'});
    return undef unless defined $fh;

    while (defined(my $line = <$fh>)) {
	if ($line =~ /^$key\s+(.*)$/) {
	    util::dprint("status: $key = $1\n");
            $fh->close;  # この行を追加
	    return $1;
	}
    }
    $fh->close;          # この行を追加
    return undef;
}

# こんなことをしなくても勝手に閉じてくれると思うのだけど

-- Satoru Takabayashi