1
我正在使用一個布爾查詢來組合幾個查詢。我發現如果我將一個BooleanQuery添加到BooleanQuery中,則不會返回任何結果。添加的BooleanQuery是一個MUST_NOT,與-city_id:100一樣。嵌套布爾查詢?
但是正如lucene的規範所說,BooleanQuery可以嵌套,我認爲這意味着可以添加這樣的BooleanQuery。現在我必須添加BooleanQuery中的所有子句,然後將它們逐個添加到容器BooleanQuery中。
我有點困惑。任何人都可以幫忙?非常感謝你!
嗯,這似乎工作。謝謝。但是這不是令人困惑嗎?我將BooleanQuery添加到BooleanQuery,並且仍然需要檢查要添加的查詢是否具有AND某些查詢。 此外,ANDing MatchAllDocsQuery在這種情況下會破壞性能嗎? – KailZhang 2010-05-13 10:17:37
你可以閱讀關於這個線程的布爾查詢特異性。 http://search-lucene.com/m/8x64lENo571/基本上,NOT不僅僅是壓制文檔。你需要另一個積極的組合才能使用它。 我不知道MatchAllDocsQuery的實現細節,但gettig所有文檔應該足夠快。附加的AND操作應該是快速的,以及它在內部對bitset的操作。 – 2010-05-17 13:13:53
對以前的評論中的中斷句子表示歉意。 – 2010-05-18 11:34:27