2014-12-05 2 views
1

lucene 색인에서 필터를 수행하는 데 BooleanFilter을 사용하고 있습니다.Lucene.NET 3.0.3에서 빈 FilterClause가있는 BooleanFilter

코드 :

BooleanFilter _filter = new BooleanFilter(); 
var locationFilter = new TermsFilter(); 
locationFilter.AddTerm(new Term("Location", "Dhaka")); 
_filter.Add(new FilterClause(locationFilter, Occur.MUST)); 

그리고 내 검색 코드

이 코드는 잘 작동

var hits = searcher.Search(query, _filter, hits_limit, Sort.RELEVANCE).ScoreDocs; 

니펫;

하지만 가끔은 난 후, 난 그냥 빈 BooleanFilter를두고이 같은 검색 수행 할 위치에 필터링 할 필요가 없습니다 : 이제

BooleanFilter _filter = new BooleanFilter(); 
    var hits = searcher.Search(query, _filter, hits_limit, Sort.RELEVANCE).ScoreDocs; 

왜 나에게 검색 결과를 반환하지 안타 않습니다를?;

답변

1

나는 당신의 빈 BooleanFilter 아무것도 일치하지하고 있다고 생각 ..

검색의 다른 오버로드를 사용해보십시오 search(Query query, int n, Sort sort)

나는 검사, 그것을했을
+0

'경우 (되지 않은 필터 옵션)'다음'검색 (쿼리 쿼리, int n, BooleanFilter null, 정렬 정렬)' – Moshii