mirror of https://github.com/apache/lucene.git
LUCENE-5922: DocValuesDocIdSet is not cacheable.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1623345 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ea365a6a96
commit
190fd083a3
lucene
|
@ -145,6 +145,9 @@ Bug Fixes
|
||||||
possibly deleting a file that's still in use in the index, leading
|
possibly deleting a file that's still in use in the index, leading
|
||||||
to corruption. (Mike McCandless)
|
to corruption. (Mike McCandless)
|
||||||
|
|
||||||
|
* LUCENE-5922: DocValuesDocIdSet on 5.x and FieldCacheDocIdSet on 4.x
|
||||||
|
are not cacheable. (Adrien Grand)
|
||||||
|
|
||||||
Build
|
Build
|
||||||
|
|
||||||
* LUCENE-5909: Smoke tester now has better command line parsing and
|
* LUCENE-5909: Smoke tester now has better command line parsing and
|
||||||
|
|
|
@ -46,15 +46,6 @@ public abstract class DocValuesDocIdSet extends DocIdSet {
|
||||||
*/
|
*/
|
||||||
protected abstract boolean matchDoc(int doc);
|
protected abstract boolean matchDoc(int doc);
|
||||||
|
|
||||||
/**
|
|
||||||
* this DocIdSet is always cacheable (does not go back
|
|
||||||
* to the reader for iteration)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public final boolean isCacheable() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long ramBytesUsed() {
|
public long ramBytesUsed() {
|
||||||
return 0L;
|
return 0L;
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.apache.lucene.util.Bits;
|
||||||
import org.apache.lucene.util.FixedBitSet;
|
import org.apache.lucene.util.FixedBitSet;
|
||||||
import org.apache.lucene.util.IOUtils;
|
import org.apache.lucene.util.IOUtils;
|
||||||
import org.apache.lucene.util.LuceneTestCase;
|
import org.apache.lucene.util.LuceneTestCase;
|
||||||
|
import org.apache.lucene.util.WAH8DocIdSet;
|
||||||
|
|
||||||
public class TestCachingWrapperFilter extends LuceneTestCase {
|
public class TestCachingWrapperFilter extends LuceneTestCase {
|
||||||
Directory dir;
|
Directory dir;
|
||||||
|
@ -240,7 +241,7 @@ public class TestCachingWrapperFilter extends LuceneTestCase {
|
||||||
if (originalSet.isCacheable()) {
|
if (originalSet.isCacheable()) {
|
||||||
assertEquals("Cached DocIdSet must be of same class like uncached, if cacheable", originalSet.getClass(), cachedSet.getClass());
|
assertEquals("Cached DocIdSet must be of same class like uncached, if cacheable", originalSet.getClass(), cachedSet.getClass());
|
||||||
} else {
|
} else {
|
||||||
assertTrue("Cached DocIdSet must be an FixedBitSet if the original one was not cacheable", cachedSet instanceof FixedBitSet || cachedSet == null);
|
assertTrue("Cached DocIdSet must be an WAH8DocIdSet if the original one was not cacheable", cachedSet instanceof WAH8DocIdSet || cachedSet == null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -258,7 +259,7 @@ public class TestCachingWrapperFilter extends LuceneTestCase {
|
||||||
// returns default empty docidset, always cacheable:
|
// returns default empty docidset, always cacheable:
|
||||||
assertDocIdSetCacheable(reader, NumericRangeFilter.newIntRange("test", Integer.valueOf(10000), Integer.valueOf(-10000), true, true), true);
|
assertDocIdSetCacheable(reader, NumericRangeFilter.newIntRange("test", Integer.valueOf(10000), Integer.valueOf(-10000), true, true), true);
|
||||||
// is cacheable:
|
// is cacheable:
|
||||||
assertDocIdSetCacheable(reader, DocValuesRangeFilter.newIntRange("test", Integer.valueOf(10), Integer.valueOf(20), true, true), true);
|
assertDocIdSetCacheable(reader, DocValuesRangeFilter.newIntRange("test", Integer.valueOf(10), Integer.valueOf(20), true, true), false);
|
||||||
// a fixedbitset filter is always cacheable
|
// a fixedbitset filter is always cacheable
|
||||||
assertDocIdSetCacheable(reader, new Filter() {
|
assertDocIdSetCacheable(reader, new Filter() {
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue