2013-07-11 70 views
0

我将SimpleLuucene添加到我的应用程序中,这是一个包装层,它使Lucene在基本情况下更容易实现,希望能够提高查询速度。但是,当我使用最简单的工作概念来连接代码时,我没有得到任何结果。我究竟做错了什么?为什么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); 
+0

你想要匹配什么:具有完全短语“1144 Air Cargo ...”的文档,包含任何顺序的所有这些单词的文档,还是包含任何这些单词的文档? – Keith

回答

1

查询对象TermQuery将尝试匹配的输入值正是原样。输入和索引值之间的任何差异(例如Fl而不是FL)将导致零匹配。所有外壳,空格和符号都需要相同才能返回匹配的文档。我建议事先处理输入和索引值(即索引之前的低层字符串,以及类似的所有搜索输入)以避免细微的差异。

相关问题