Lucene 嵌套布尔查询?

Lucene 嵌套布尔查询?,lucene,Lucene,我使用一个布尔查询来组合几个查询。我发现如果我向BooleanQuery添加一个BooleanQuery,那么就不会返回任何结果。添加的布尔查询是必须的,比如-city\u id:100 但正如lucene的规范所说,BooleanQuery可以嵌套,我认为这意味着可以添加这样的BooleanQuery。现在我必须从BooleanQuery中获取要添加的所有子句,然后将它们逐个添加到容器BooleanQuery中 我有点困惑。有人能帮忙吗?多谢各位 Lucene不支持一元not运算符。但是,您可

我使用一个布尔查询来组合几个查询。我发现如果我向BooleanQuery添加一个BooleanQuery,那么就不会返回任何结果。添加的布尔查询是必须的,比如-city\u id:100

但正如lucene的规范所说,BooleanQuery可以嵌套,我认为这意味着可以添加这样的BooleanQuery。现在我必须从BooleanQuery中获取要添加的所有子句,然后将它们逐个添加到容器BooleanQuery中


我有点困惑。有人能帮忙吗?多谢各位

Lucene不支持一元not运算符。但是,您可以通过与进行ANDing来获得此类查询的结果。

啊,这似乎是可行的。谢谢但这难道不令人困惑吗?我将BooleanQuery添加到BooleanQuery中,仍然需要检查要添加的查询是否有和一些查询。此外,在这种情况下,ANDing MATCHALLDOCSKERY是否会破坏性能?您可以阅读有关此线程上布尔查询特性的信息。从本质上讲,不只是抑制文档。你需要另一个积极的一套,它的工作。我不知道MatchAllDocsQuery实现的细节,但是获取所有文档应该足够快。附加的ANDing操作应该是快速的,就像对一个位集的内部it操作一样。为前面评论中的断句道歉。