2014-12-05 44 views
1

我正在使用BooleanFilter在lucene索引中執行過濾器。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,Sort排序)' – Moshii 2014-12-09 11:04:36