2011-06-30 77 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祝您好运! –