mirror of https://github.com/apache/lucene.git
LUCENE-3021: randomize skipInterval in tests
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1091408 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ad8926cc61
commit
35d1d369f5
|
@ -69,12 +69,13 @@ public final class SepPostingsWriterImpl extends PostingsWriterBase {
|
||||||
* smaller indexes, greater acceleration, but fewer accelerable cases, while
|
* smaller indexes, greater acceleration, but fewer accelerable cases, while
|
||||||
* smaller values result in bigger indexes, less acceleration and more
|
* smaller values result in bigger indexes, less acceleration and more
|
||||||
* accelerable cases. More detailed experiments would be useful here. */
|
* accelerable cases. More detailed experiments would be useful here. */
|
||||||
final int skipInterval = 16;
|
final int skipInterval;
|
||||||
|
static final int DEFAULT_SKIP_INTERVAL = 16;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expert: minimum docFreq to write any skip data at all
|
* Expert: minimum docFreq to write any skip data at all
|
||||||
*/
|
*/
|
||||||
final int skipMinimum = skipInterval;
|
final int skipMinimum;
|
||||||
|
|
||||||
/** Expert: The maximum number of skip levels. Smaller values result in
|
/** Expert: The maximum number of skip levels. Smaller values result in
|
||||||
* slightly smaller indexes, but slower skipping in big posting lists.
|
* slightly smaller indexes, but slower skipping in big posting lists.
|
||||||
|
@ -102,8 +103,13 @@ public final class SepPostingsWriterImpl extends PostingsWriterBase {
|
||||||
private final RAMOutputStream indexBytesWriter = new RAMOutputStream();
|
private final RAMOutputStream indexBytesWriter = new RAMOutputStream();
|
||||||
|
|
||||||
public SepPostingsWriterImpl(SegmentWriteState state, IntStreamFactory factory) throws IOException {
|
public SepPostingsWriterImpl(SegmentWriteState state, IntStreamFactory factory) throws IOException {
|
||||||
super();
|
this(state, factory, DEFAULT_SKIP_INTERVAL);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SepPostingsWriterImpl(SegmentWriteState state, IntStreamFactory factory, int skipInterval) throws IOException {
|
||||||
|
super();
|
||||||
|
this.skipInterval = skipInterval;
|
||||||
|
this.skipMinimum = skipInterval; /* set to the same for now */
|
||||||
final String docFileName = IndexFileNames.segmentFileName(state.segmentName, state.codecId, DOC_EXTENSION);
|
final String docFileName = IndexFileNames.segmentFileName(state.segmentName, state.codecId, DOC_EXTENSION);
|
||||||
docOut = factory.createOutput(state.directory, docFileName);
|
docOut = factory.createOutput(state.directory, docFileName);
|
||||||
docIndex = docOut.index();
|
docIndex = docOut.index();
|
||||||
|
|
|
@ -50,12 +50,13 @@ public final class StandardPostingsWriter extends PostingsWriterBase {
|
||||||
* smaller indexes, greater acceleration, but fewer accelerable cases, while
|
* smaller indexes, greater acceleration, but fewer accelerable cases, while
|
||||||
* smaller values result in bigger indexes, less acceleration and more
|
* smaller values result in bigger indexes, less acceleration and more
|
||||||
* accelerable cases. More detailed experiments would be useful here. */
|
* accelerable cases. More detailed experiments would be useful here. */
|
||||||
final int skipInterval = 16;
|
static final int DEFAULT_SKIP_INTERVAL = 16;
|
||||||
|
final int skipInterval;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Expert: minimum docFreq to write any skip data at all
|
* Expert: minimum docFreq to write any skip data at all
|
||||||
*/
|
*/
|
||||||
final int skipMinimum = skipInterval;
|
final int skipMinimum;
|
||||||
|
|
||||||
/** Expert: The maximum number of skip levels. Smaller values result in
|
/** Expert: The maximum number of skip levels. Smaller values result in
|
||||||
* slightly smaller indexes, but slower skipping in big posting lists.
|
* slightly smaller indexes, but slower skipping in big posting lists.
|
||||||
|
@ -82,7 +83,12 @@ public final class StandardPostingsWriter extends PostingsWriterBase {
|
||||||
private RAMOutputStream bytesWriter = new RAMOutputStream();
|
private RAMOutputStream bytesWriter = new RAMOutputStream();
|
||||||
|
|
||||||
public StandardPostingsWriter(SegmentWriteState state) throws IOException {
|
public StandardPostingsWriter(SegmentWriteState state) throws IOException {
|
||||||
|
this(state, DEFAULT_SKIP_INTERVAL);
|
||||||
|
}
|
||||||
|
public StandardPostingsWriter(SegmentWriteState state, int skipInterval) throws IOException {
|
||||||
super();
|
super();
|
||||||
|
this.skipInterval = skipInterval;
|
||||||
|
this.skipMinimum = skipInterval; /* set to the same for now */
|
||||||
//this.segment = state.segmentName;
|
//this.segment = state.segmentName;
|
||||||
String fileName = IndexFileNames.segmentFileName(state.segmentName, state.codecId, StandardCodec.FREQ_EXTENSION);
|
String fileName = IndexFileNames.segmentFileName(state.segmentName, state.codecId, StandardCodec.FREQ_EXTENSION);
|
||||||
freqOut = state.directory.createOutput(fileName);
|
freqOut = state.directory.createOutput(fileName);
|
||||||
|
|
|
@ -120,7 +120,14 @@ public class MockRandomCodec extends Codec {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
|
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException {
|
||||||
|
// we pull this before the seed intentionally: because its not consumed at runtime
|
||||||
|
// (the skipInterval is written into postings header)
|
||||||
|
int skipInterval = _TestUtil.nextInt(seedRandom, 2, 64);
|
||||||
|
|
||||||
|
if (LuceneTestCase.VERBOSE) {
|
||||||
|
System.out.println("MockRandomCodec: skipInterval=" + skipInterval);
|
||||||
|
}
|
||||||
|
|
||||||
final long seed = seedRandom.nextLong();
|
final long seed = seedRandom.nextLong();
|
||||||
|
|
||||||
if (LuceneTestCase.VERBOSE) {
|
if (LuceneTestCase.VERBOSE) {
|
||||||
|
@ -136,12 +143,12 @@ public class MockRandomCodec extends Codec {
|
||||||
PostingsWriterBase postingsWriter;
|
PostingsWriterBase postingsWriter;
|
||||||
|
|
||||||
if (random.nextBoolean()) {
|
if (random.nextBoolean()) {
|
||||||
postingsWriter = new SepPostingsWriterImpl(state, new MockIntStreamFactory(random));
|
postingsWriter = new SepPostingsWriterImpl(state, new MockIntStreamFactory(random), skipInterval);
|
||||||
} else {
|
} else {
|
||||||
if (LuceneTestCase.VERBOSE) {
|
if (LuceneTestCase.VERBOSE) {
|
||||||
System.out.println("MockRandomCodec: writing Standard postings");
|
System.out.println("MockRandomCodec: writing Standard postings");
|
||||||
}
|
}
|
||||||
postingsWriter = new StandardPostingsWriter(state);
|
postingsWriter = new StandardPostingsWriter(state, skipInterval);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (random.nextBoolean()) {
|
if (random.nextBoolean()) {
|
||||||
|
|
Loading…
Reference in New Issue