2011-06-30 209 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沒有scoreDocs(結果)。我知道索引中有一個id字段等於346的文檔,但由於某種原因搜索沒有找到它。這裏是如何的「ID」字段正在創建

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

我有其他字段進行搜索的那些做工精細(例如,如果我在主題欄我得到我應該結果搜索)

回答

6

SimpleAnalyzer使用LetterTokenizer,它只返回字母。

考慮使用KeywordAnalyzer代替id字段。

+0

修復它......再次感謝! – ryoung

+0

我很高興爲您工作。順便說一下,圍繞StackOverflow,一個很好的方式來表示感謝是upvote和接受答案。 Lucene.net祝您好運! –