Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
NMZ.head の文書数がデタラメ
- From: Tadamasa Teranishi <yw3t-trns@xxxxxxxxxxxxxxx>
- Date: Wed, 24 Mar 2004 01:38:53 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 03892
寺西です。
過去に何度が質問があった話かと思いますが、NMZ.head に埋め込まれる
文書数がデタラメになる場合があります。
インデックスを新規作成した場合は正しいのですが、文書が削除された
場合にまずいようです。
次の手順で再現します。.txt ファイルが 5個、.html が 2個あるとします。
1. 新規にインデックスを作成します。
$ mknmz *.txt *.html
NMZ.head には文書数 7 となり、正しい値です。
2. インデックスを更新します。
$ mknmz *.txt
NMZ.head には文書数 8 となり、誤った結果となっています。
正しい値は 5 です。
これは mknmz.in:make_headfoot で、
my $total_files_count = util::commas(get_total_files() + $docid_count
- $DeletedFilesCount - $UpdatedFilesCount);
としてファイルを求めているのですが、各値は次のようになっています。
get_total_files() : 5
$docid_count : 5
$DeletedFilesCount : 2
$UpdatedFilesCount : 0
このため、8 になります。
本来は
get_total_files() : 7
$docid_count : 0
$DeletedFilesCount : 2
$UpdatedFilesCount : 0
で、5 になるべきでしょう。
もう少し調べてみると、append_index で make_headfoot_pages を
呼び出している部分が原因のようです。
HEAD 用の差分を以下にしめします。
# cvs diff mknmz.in
Index: mknmz.in
===================================================================
RCS file: /storage/cvsroot/namazu/scripts/mknmz.in,v
retrieving revision 1.135
diff -u -p -r1.135 mknmz.in
--- mknmz.in 17 Mar 2004 06:25:34 -0000 1.135
+++ mknmz.in 23 Mar 2004 16:32:54 -0000
@@ -1822,8 +1822,8 @@ sub append_index (@) {
set_lockfile($var::NMZ{'lock2'});
update_dateindex();
update_registry(0);
+ make_headfoot_pages(0, get_total_keys());
put_log(0, 0, 0, get_total_keys());
- make_headfoot_pages(get_status("files"),
get_status("keys"));
util::remove_tmpfiles();
}
print _("No files to index.\n");
# なお、本件は 2.0.12 でも再現すると思われるので、2.0.13 の修正
# 対象からは外します。
--
=====================================================================
寺西 忠勝(TADAMASA TERANISHI) yw3t-trns@xxxxxxxxxxxxxxx
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint = 474E 4D93 8E97 11F6 662D 8A42 17F5 52F4 10E7 D14E