From: OHSHIMA Ryunosuke Date: 2001-08-09T03:27:30+09:00 Subject: [ruby-list:30881] Re: rbnamazu の field について 大島です。 From: yoshikazu tsubaki Subject: [ruby-list:30861] Re: rbnamazu の field について Date: Mon, 6 Aug 2001 09:45:14 +0900 > 任意のfieldというのは、mknmzrcに追加したfieldのことです。 他の方からもメールで直接に指摘していただきましたが、僕自身が mknmz で任意の field の追加をする機能を使ったことがなかったため、この機能 を完全に失念しておりました。申し訳有りません。 > クラス FieldAll に fieldnames の変数(引数)があるので、それを使えば > 良いのだろうとは思ったのですが、どうやって引数を渡せば良いのかわか > りませんでした。とりあえず、以下のようにして、目的の結果は得られて > いるのですが、本来の fieldnames へ代入する方法が知りたかったので、 > メールしました。 確かに Namazu::FieldAll.new には fieldnames が渡せるのですが、実際に Namazu::Index から渡すことは想定しておりませんでした。とりあえずは、 よしかずさんの方法のように、直接ソースを書き換えて対応していただくし かないです。 以下の様にしておけば、実際に存在する全ての field を認識するようにな ります。 --- rbnamazu.rb 2000/12/03 16:21:27 1.4 +++ rbnamazu.rb 2001/08/08 17:30:28 @@ -75,10 +75,13 @@ if fieldnames @fieldnames = fieldnames else - @fieldnames = [ - 'date', 'from', 'message-id', 'newsgroups', - 'size', 'subject', 'summary', 'to', 'uri', - ] + fieldnames = Dir.glob(File.join(index.dirname(), "NMZ.field*.i")) + fieldnames.collect!() do |fieldname| + fieldname = File.basename(fieldname) + fieldname.sub!(/^NMZ\.field\.(.*)\.i$/, '\1') + fieldname + end + @fieldnames = fieldnames end @fieldall = {} for fieldname in @fieldnames > 現在は、Namazu#queryの結果を再度 each で検索しているので field 検索へ > 対応してもらえるとありがたいです。 > 楽みにしています。がんばってください。 ありがとうございます。ただ、今の Namazu の index 構成での field 検索 は、全文章を実際に調べることになるので、 Namazu#query の結果を再度 each で絞り込んだ方が、速度的には高速になる場合が多いと思います。 大島 龍之介 ryu@jaist.ac.jp