Lucene.net으로 필터를 추가하는 코드가 있지만 좋은 설명은 코드를 이해하지 못했습니다. 그래서 여기에 설명을위한 코드를 붙여 넣습니다.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은 처음 실행했을 때 모든 항목에 대해 색인을 생성합니다. 그래서 생성 된 데이터 파일에서 해당 줄이 필터링되므로 모든 데이터가 이미 있으므로 다시 가져 오는 것이 아니라 쿼리를 사용하여 이미 색인 된 정보를 필터링합니다. –