为什么Lucene的实现没有返回任何结果?

时间:2013-07-11 14:37:40

标签: c# lucene.net

我正在将SimpleLuucene添加到我的应用程序中,这是一个包装层,使Lucene在基本情况下更容易实现,希望提高查询速度。然而,当我使用最简单的工作概念来连接代码时,我没有得到任何结果。我究竟做错了什么?

PS:我遗漏了最初创建索引的代码。但它已经运行,cfs和fdt文件有数据。

var searchcriteria = new Search.Helpers.Mapping().MapToModel(postdata);
var searcher = new DirectoryIndexSearcher(
    new DirectoryInfo(@"c:\search.index"), 
    true);
var query = new TermQuery(
    new Term("situs", "1144 Air Cargo Ave, Sarasota, Fl, 34243"));

var searchService = new SearchService(searcher);
var luceneresults = searchService.SearchIndex(query);

1 个答案:

答案 0 :(得分:1)

查询对象TermQuery将尝试将输入值完全匹配。输入值和索引值之间的任何差异(例如Fl而不是FL)都将导致零匹配。 Lucene的所有套管,空格和符号必须相同才能返回匹配的文件。我建议事先预处理输入和索引值(即在索引之前对下层字符串进行预处理,对所有搜索输入也类似)以避免细微差别。