solrのサブクエリで()の中に-をつけると結果がゼロになる話

どうした

solrのfqに下記のような値を設定しても思ったような結果が返ってこない。

(-fieldNameA:A OR -fieldNameB:B) AND fieldNameC:C

下記のような値は大丈夫。

(-fieldNameA:A)
-fieldNameA:A OR -fieldNameB:B

原因と対応

pure negativeな書き方はtop-levelのみ対応らしい。
どうやら-やNOTはLuceneにわたすときに自動で*:*をつけてくれる(と書いてある・未確認)ようだが、()内はやってくれないみたい。
なので上の通り先頭に*:*(全件取得)をつけてこう書く。

(*:* -fieldNameA:A OR -fieldNameB:B) AND fieldNameC:C

あるいはこう

-(fieldNameA:A OR fieldNameB:B) AND fieldNameC:C

なんか…気持ち悪いな…これ同じなんだ…?