2011-01-03 5 views
0

私はLuceneインデックスを最適化するために取り組んでいますが、Field.Storeの全般について少し不明です。私はまともな説明を得ることができるかどうか分かります。Lucene.Net Storing。どのようにそれはすべて一緒に来るのですか?

例:私は私のユーザーフィールドに格納されている「ユーザー」を持っている、と私はuser:joeを経由して、そのユーザーを検索できるようにしたい場合は

doc.Add(New Field("user", e.Username, Field.Store.YES, Field.Index.ANALYZED)) 

私はその場Field.Store.YESを保存する必要がありますか?私は店がどのように働くのか全く分かりません。それがインデックスにないことを意味する場合は、「ユーザー」フィールドをインデックスに入れるのは何でしょうか?

+0

いいえ、実際のユーザー名を取得する必要はなく、ヒットしたかどうかを知ることができない場合は、値を保存する必要はありません。 –

+0

値を保存する必要があるのはいつですか? –

答えて

1

Field.StoreはSO基本的には検索ヒットは、あなたがDBのような別のストレージ・メカニズムを持っている場合は、これを必要としない、Field.Store.YESセットですべてのフィールドのデータが含まれますLucene indexing: Store and indexing modes explained

スレッドこの中で美しく説明されています。このためにLuceneに専ら頼っているのであれば、いくつかの一般的なフィールドを格納することができます。少なくとも1つは、ディスク上の元のドキュメントにアクセスできるフィールドです。

+0

ええと... normalli検索のヒットがある場合、私はデータベースから元のオブジェクトを取得できるので、私はいくつかの識別フィールドのためにはいに設定されているストアを持っています。 –

+0

すてきなリンク。私は自分の検索でそれを見つけられませんでした。ありがとう。 –

+0

だから、すべてのフィールドを 'Store.NO'と' Index.ANALYZED'としてパンチすると、特定の 'Field'を検索する必要があります。しかし、その特定のフィールドにキーワードが含まれていない場合(たとえキーワードが別のフィールドに含まれていても)、分析は不可能です。あれは正しいですか? * IE:ユーザーフィールドにあるjoeを検索しますが、パーサーが詳細フィールドを指している場合、joeは決して見つかりません。* –

関連する問題