[英]How Lucene.net filter works
我得到了一段代码,可以通过Lucene.net添加过滤器,但是没有很好的解释来理解代码。 所以在这里我粘贴代码进行解释。
List<SearchResults> Searchresults = new List<SearchResults>();
string indexFileLocation = @"C:\o";
Lucene.Net.Store.Directory dir = Lucene.Net.Store.FSDirectory.GetDirectory(indexFileLocation);
string[] searchfields = new string[] { "fname", "lname", "dob", "id"};
IndexSearcher indexSearcher = new IndexSearcher(dir);
Filter fil= new QueryWrapperFilter(new TermQuery( new Term(field, "5/12/1998")));
var hits = indexSearcher.Search(QueryMaker(searchString, searchfields), fil);
for (int i = 0; i < hits.Length(); i++)
{
SearchResults result = new SearchResults();
result.fname = hits.Doc(i).GetField("fname").StringValue();
result.lname = hits.Doc(i).GetField("lname").StringValue();
result.dob = hits.Doc(i).GetField("dob").StringValue();
result.id = hits.Doc(i).GetField("id").StringValue();
Searchresults.Add(result);
}
我需要以下两行的解释
Filter fil= new QueryWrapperFilter(new TermQuery( new Term(field, "5/12/1998")));
var hits = indexSearcher.Search(QueryMaker(searchString, searchfields), fil);
我只是想先了解lucene搜索并提取所有数据,然后实施过滤器,还是从一开始就基于过滤器提取lucene? 请指导。 谢谢。
我只是想先了解lucene搜索并提取所有数据,然后实施过滤器,还是从一开始就基于过滤器提取lucene? 请指导。 谢谢。
Lucene.Net将执行搜索和过滤后的查询,之后,它将“合并”结果。 我相信这样做的原因是要缓存已过滤的查询,因为与搜索查询相比,下一次它更有可能在点击时获得成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.