Fixed caching VC with negation query.
Change-Id: I4296cdc6d20af36a641bb34ae65b5e8b02661453
diff --git a/src/main/java/de/ids_mannheim/korap/collection/ToCacheVCFilter.java b/src/main/java/de/ids_mannheim/korap/collection/ToCacheVCFilter.java
index 7c8a815..b0f3b59 100644
--- a/src/main/java/de/ids_mannheim/korap/collection/ToCacheVCFilter.java
+++ b/src/main/java/de/ids_mannheim/korap/collection/ToCacheVCFilter.java
@@ -47,16 +47,21 @@
FixedBitSet bitset = new FixedBitSet(maxDoc);
if (docIdSet == null) {
- if (this.cbi != null) {
- bitset.clear(0, bitset.length());
+ if (cbi.isNegative()) {
+ bitset.set(0, maxDoc);
}
else {
- bitset.set(0, bitset.length());
- };
+ bitset.clear(0, maxDoc);
+ }
}
else {
bitset.or(docIdSet.iterator());
+ if (cbi.isNegative()){
+ bitset.flip(0, maxDoc);
+ }
}
+
+
docIdMap.put(context.hashCode(), new DocBits(bitset.getBits()));
CachedVCData cachedVCData = new CachedVCData(new HashMap<>(docIdMap));