final OpenBitSetDISI bits = new OpenBitSetDISI(in.maxDoc());
final DocIdSet docs = preserveFilter.getDocIdSet(in);
if (docs != null) {
final DocIdSetIterator it = docs.iterator();
if (it != null) {
bits.inPlaceOr(it);
}
}
// this is somehow inverse, if we negate the filter, we delete all documents it matches!
if (!negateFilter) {
bits.flip(0, in.maxDoc());