c# - Lucene - 将多字段查询与 boolean 查询相结合

标签 c# java lucene.net

我正在 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/

相关文章:

c# - 有人可以向我解释一下这个 GetCardinality 方法在做什么吗?

c# - 解析 Lucene 查询语法并转义 CloudSearch

c# - 为只读属性赋值适用于固定值,但不适用于变量

javascript - Jquery C# 中的数据集值

Java - 似乎无法按照方程的路径在屏幕上绘制文本

java - XSL 转换期间的 Unicode 字符

performance - 对 Lucene 搜索结果进行分组并按类别计算频率

c# - Calendar Extender 日期选择并转换为正确的格式

c# - 使用 ObservesProperty 的多线程

java - 通过派生类访问Java中定义的静态内部类