[英]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.