Namazu-users-ja(旧)


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

mknmz: Cannot compress negative numbers



はじめまして。黒崎と申します。よろしくお願いします。

Namazu 2.0.4 の mknmz で、36642個のファイル群のインデックスを作る
とき、30192個めまで行ったところで次のようなエラーメッセージが出て
テンポラリファイルを残したまま終了してしまいました。

> インデックスを書き出しています...Cannot compress negative numbers at /usr/local/bin/mknmz line 2245.

ちなみに2245行目付近は次のようなコードになっています。

> sub adjust_first_docid ($$) {
>     my ($record, $last_docid) = @_;
>     my (@data) = unpack 'w*', $record;
>
>     my $val = $data[0];
>     $data[0] = $data[0] - $last_docid;
>     my $adjusted = $val - $last_docid;
>     $record = pack 'w*', @data;

$data[0] < $last_docid のために $data[0] が負になったからのようです。

namazu-users-ja のアーカイブを見たところ、同様の事例がありましたが、
解決方法にはたどりつけませんでした。

たとえば

  $data[0] = ($data[0] > $last_docid) ? ($data[0] - $last_docid) : ($last_docid - $data[0]);

のようにしたら、他で問題が起こりますでしょうか。

--
Hiroyuki KUROSAKI
<hkuro@xxxxxxxxxxxxxxxx>
Institute for Japanese Culture and Classics
Kokugakuin University, Japan