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



我正在将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);

查询对象TermQuery将尝试按原样与输入值完全匹配。输入值和索引值之间的任何差异(例如Fl而不是FL)都将导致零匹配。所有的大小写、空格和符号都需要相同,Lucene才能返回匹配的文档。我建议在手动之前对输入和索引值进行预处理(即,在索引之前降低大小写字符串,对于所有搜索输入也是如此),以避免细微的差异。

最新更新