我有三个字段,分别是F1、F2和F3。我希望找到所有三个字段值都为空的文档。我可以通过使用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);这肯定不是去work.How的,我能做到吗?任何帮助都是有帮助的。
发布于 2017-09-29 23:16:12
不确定你的索引是什么样子,但你想实现这一点,对吧?
您希望有一个使用这些字段进行搜索的查询,并且这些字段必须为空
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);此布尔查询在此字段中搜索空字词(术语的第二个参数是""),对于每个字段,它必须是必填项。
https://stackoverflow.com/questions/46441766
复制相似问题