0

我正在将 SimpleLucene 添加到我的应用程序中,这是一个包装层,使 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);
4

1 回答 1

1

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

于 2013-07-15T13:48:49.973 回答