Lucene-将多字段查询与布尔查询相结合

本文关键字:查询 相结合 布尔 字段 Lucene- | 更新日期: 2023-09-27 18:22:01

我正在Lucene索引上使用MultiFieldQueryParser对2个字段进行免费文本搜索,这很好。以下是我如何构建搜索查询:

var searchParser = new MultiFieldQueryParser(_currentLuceneVersion, new[] { _titleField, _bodyField }, _standardAnalyzer);
Query searchQuery = searchParser.Parse(searchText);

我现在添加了一个新字段,它是一个布尔值(1或0作为字符串),我希望我的原始搜索对原始自由文本搜索进行布尔值过滤。

我认为这必须使用BooleanQuery,然后与原始MultiFieldQueryParser和新BooleanQuery进行组合。

这样做对吗?

Lucene-将多字段查询与布尔查询相结合

"false"值的QueryFilter示例

QueryFilter falseFilter = new QueryFilter(new TermQuery(new Term("BOOL_FIELD", "0")));
searcher.search(query, falseFilter, maxResults);