我正在 Lucene 索引上使用 MultiFieldQueryParser
对 2 个字段进行自由文本搜索,效果很好。以下是我构建搜索查询的方法:
var searchParser = new MultiFieldQueryParser(_currentLuceneVersion, new[] { _titleField, _bodyField }, _standardAnalyzer);
Query searchQuery = searchParser.Parse(searchText);
我现在添加了一个新字段,它是一个 boolean 值(1 或 0 作为字符串),并且我希望我的原始搜索对原始自由文本搜索执行 boolean 过滤器。
我认为这必须使用 BooleanQuery
来完成,然后与原始 MultiFieldQueryParser
和新的 BooleanQuery
进行组合。
这是正确的做法吗?
最佳答案
“假”值的 QueryFilter 示例
QueryFilter falseFilter = new QueryFilter(new TermQuery(new Term("BOOL_FIELD", "0")));
searcher.search(query, falseFilter, maxResults);
关于c# - Lucene - 将多字段查询与 boolean 查询相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093849/