我在我的Lucene索引上使用MultiFieldQueryParser
在2個字段上進行自由文本搜索,這工作正常。下面是我如何我建立的搜索查詢:Lucene - 結合多字段查詢與布爾查詢
var searchParser = new MultiFieldQueryParser(_currentLuceneVersion, new[] { _titleField, _bodyField }, _standardAnalyzer);
Query searchQuery = searchParser.Parse(searchText);
我現在已經添加了一個新的領域,這是一個布爾值(1或0作爲字符串),我想我原來的搜索做的一個布爾值過濾器原創自由文本搜索。
我認爲這必須使用BooleanQuery
完成,然後與原始MultiFieldQueryParser
和新BooleanQuery
結合使用。
這樣做是否正確?
您還可以回覆創建'QueryFilter',並給它'Search'方法 – 2012-02-01 11:32:09
謝謝,你能不能給我一個這樣的例子? – jcvandan 2012-02-01 13:57:54
像LB說過的,我會構建2個QueryFilters,一個用於0,另一個用於1.然後,讓它們保留並重新使用它們。只有在索引更改時,您才需要重建過濾器。 QueryFilter緩存匹配的文檔,所以你應該看到使用簡單的布爾查詢子句 – 2012-02-01 14:02:38