2011-06-30 24 views
2

何らかの理由で、luceneは何らかの理由で何らかの理由で結果が返されません。ここに「検索」コードがありますLucene .NETで検索結果が返されない

Dim util As New IndexerUtil() 
Dim dir As Lucene.Net.Store.Directory = FSDirectory.Open(New DirectoryInfo(util.getIndexDir())) 
Dim indexSearcher As New IndexSearcher(dir, False) 
Dim indexWriter As New IndexWriter(dir, New SimpleAnalyzer(), False, indexWriter.MaxFieldLength.UNLIMITED) 

Dim term As New Term("id", "346") 
Dim query As New TermQuery(term) 
Dim topDocs As TopDocs = indexSearcher.Search(query, 100) 

topDocsにスコアドック(結果)はありません。 idフィールドが346に等しい文書が索引にあるという事実はわかっていますが、何らかの理由で検索で見つからない場合があります。ここではどのように「ID」フィールドは

doc.Add(New Field("id", ID, Field.Store.YES, Field.Index.ANALYZED)) //ID is an integer 

を作成している私が検索するように他のフィールドを持っており、それらの作業の罰金(例えば、私は件名欄に検索した場合、私は私がすべき結果を得る)

答えて

6

SimpleAnalyzerです文字を返すだけのLetterTokenizerを使用します。

idフィールドの代わりにKeywordAnalyzerを使用することを検討してください。

+0

それはそれを修正しました...もう一度ありがとう! – ryoung

+0

私はあなたのために働いてうれしいです。ちなみに、StackOverflowの周りに感謝の気持ちを示す良い方法は、アップホートと回答を受け入れることです。 Lucene.netと運が良かった! –

関連する問題