我有三个字段:F1
,F2
,F3
。我想找到所有三个字段值为null的文档。我可以使用BooleanQuery
来实现这一目标吗?如果我对所有三个字段使用MUST_NOT
子句,那么它将不会返回具有其中一个字段为非空值的文档。
我在谈论实现类似的东西
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new TermQuery(new Term(F1,"")), BooleanClause.Occur.MUST_NOT);
booleanQuery.add(new TermQuery(new Term(F2,"")), BooleanClause.Occur.MUST_NOT);
booleanQuery.add(new TermQuery(new Term(F3,"")), BooleanClause.Occur.MUST_NOT);
这肯定不会起作用。我怎么能实现这个目标?任何帮助都会有所帮助。
答案 0 :(得分:0)
不确定你的索引是怎样的,但是你想要做到这一点吗?
你想要一个用这个字段搜索的查询,这个字段必须是空的
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new TermQuery(new Term(F1,"")), BooleanClause.Occur.MUST);
booleanQuery.add(new TermQuery(new Term(F2,"")), BooleanClause.Occur.MUST);
booleanQuery.add(new TermQuery(new Term(F3,"")), BooleanClause.Occur.MUST);
此布尔查询在此字段中搜索空术语(术语的第二个参数是""),对于每个必须是必须的字段。