Namazu-devel-ja(旧)


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

Re: rbnamazu-0.2



咳といいます。

> rbnamazuで正規表現検索ができるようになりました。ドキュメントも日本語
> のものを作成したので、まとめてVersion 0.2としてftp.namazu.orgに置か
> せていただきました。

手元のインデックスで、つぎのエラーが出ました。

./rbnamazu.rb:245:in `seek': bignum too big to convert into `int' (ArgumentError)
        from ./rbnamazu.rb:245:in `get_docids'
        from ./nmzqr.rb:259:in `initialize'
        from ./nmzqr.rb:85:in `new'
        from ./nmzqr.rb:85:in `search'
        from ./rbnamazu.rb:428:in `search'
        from ./nmzdoc.rb:70:in `initialize'
        from namazu.rb:102:in `new'
        from namazu.rb:102


いろいろ試したところ、phraseindexfile.read(4)が [255,255,255,255] を
返していました。インデックスファイルの構造はわからないのですが、
0xffffffff のようなパターンになることがあるのでしょうか?

とりあえず、以下の様に 0xffffffff を無視するようにすれば動きました。

他の NMZ.*i ファイルにも同様なパターンはないのかな。



Index: rbnamazu.rb
===================================================================
RCS file: /home/mas/lib/cvsroot/labo/ruby/rbnamazu/rbnamazu.rb,v
retrieving revision 1.2
diff -u -r1.2 rbnamazu.rb
--- rbnamazu.rb	2000/06/26 15:45:24	1.2
+++ rbnamazu.rb	2000/06/26 17:32:39
@@ -239,7 +239,7 @@
       phraseentityfile = @phraseentityfile
       phraseindexfile.seek(hash * 4, 0)
       index = phraseindexfile.read(4).unpack('N')[0]
-      if index
+      if index and index != 0xffffffff
 	wstring = ''
 	tmpdocids = nil
 	phraseentityfile.seek(index, 0)