Example usage for org.apache.lucene.store IndexInput readVInt

List of usage examples for org.apache.lucene.store IndexInput readVInt

Introduction

In this page you can find the example usage for org.apache.lucene.store IndexInput readVInt.

Prototype

public int readVInt() throws IOException 

Source Link

Document

Reads an int stored in variable-length format.

Usage

From source file:com.lucure.core.codec.CompressingStoredFieldsIndexReader.java

License:Apache License

CompressingStoredFieldsIndexReader(IndexInput fieldsIndexIn, SegmentInfo si) throws IOException {
    maxDoc = si.getDocCount();//from  w  w  w.  j  a va  2 s .co m
    int[] docBases = new int[16];
    long[] startPointers = new long[16];
    int[] avgChunkDocs = new int[16];
    long[] avgChunkSizes = new long[16];
    PackedInts.Reader[] docBasesDeltas = new PackedInts.Reader[16];
    PackedInts.Reader[] startPointersDeltas = new PackedInts.Reader[16];

    final int packedIntsVersion = fieldsIndexIn.readVInt();

    int blockCount = 0;

    for (;;) {
        final int numChunks = fieldsIndexIn.readVInt();
        if (numChunks == 0) {
            break;
        }
        if (blockCount == docBases.length) {
            final int newSize = ArrayUtil.oversize(blockCount + 1, 8);
            docBases = Arrays.copyOf(docBases, newSize);
            startPointers = Arrays.copyOf(startPointers, newSize);
            avgChunkDocs = Arrays.copyOf(avgChunkDocs, newSize);
            avgChunkSizes = Arrays.copyOf(avgChunkSizes, newSize);
            docBasesDeltas = Arrays.copyOf(docBasesDeltas, newSize);
            startPointersDeltas = Arrays.copyOf(startPointersDeltas, newSize);
        }

        // doc bases
        docBases[blockCount] = fieldsIndexIn.readVInt();
        avgChunkDocs[blockCount] = fieldsIndexIn.readVInt();
        final int bitsPerDocBase = fieldsIndexIn.readVInt();
        if (bitsPerDocBase > 32) {
            throw new CorruptIndexException("Corrupted bitsPerDocBase (resource=" + fieldsIndexIn + ")");
        }
        docBasesDeltas[blockCount] = PackedInts.getReaderNoHeader(fieldsIndexIn, PackedInts.Format.PACKED,
                packedIntsVersion, numChunks, bitsPerDocBase);

        // start pointers
        startPointers[blockCount] = fieldsIndexIn.readVLong();
        avgChunkSizes[blockCount] = fieldsIndexIn.readVLong();
        final int bitsPerStartPointer = fieldsIndexIn.readVInt();
        if (bitsPerStartPointer > 64) {
            throw new CorruptIndexException("Corrupted bitsPerStartPointer (resource=" + fieldsIndexIn + ")");
        }
        startPointersDeltas[blockCount] = PackedInts.getReaderNoHeader(fieldsIndexIn, PackedInts.Format.PACKED,
                packedIntsVersion, numChunks, bitsPerStartPointer);

        ++blockCount;
    }

    this.docBases = Arrays.copyOf(docBases, blockCount);
    this.startPointers = Arrays.copyOf(startPointers, blockCount);
    this.avgChunkDocs = Arrays.copyOf(avgChunkDocs, blockCount);
    this.avgChunkSizes = Arrays.copyOf(avgChunkSizes, blockCount);
    this.docBasesDeltas = Arrays.copyOf(docBasesDeltas, blockCount);
    this.startPointersDeltas = Arrays.copyOf(startPointersDeltas, blockCount);
}

From source file:com.lucure.core.codec.ForUtil.java

License:Apache License

/**
 * Read the next block of data (<code>For</code> format).
 *
 * @param in        the input to use to read data
 * @param encoded   a buffer that can be used to store encoded data
 * @param decoded   where to write decoded data
 * @throws IOException If there is a low-level I/O error
 *//*from   ww  w. j  av a  2  s .  co  m*/
void readBlock(IndexInput in, byte[] encoded, int[] decoded) throws IOException {
    final int numBits = in.readByte();
    assert numBits <= 32 : numBits;

    if (numBits == ALL_VALUES_EQUAL) {
        final int value = in.readVInt();
        Arrays.fill(decoded, 0, BLOCK_SIZE, value);
        return;
    }

    final int encodedSize = encodedSizes[numBits];
    in.readBytes(encoded, 0, encodedSize);

    final PackedInts.Decoder decoder = decoders[numBits];
    final int iters = iterations[numBits];
    assert iters * decoder.byteValueCount() >= BLOCK_SIZE;

    decoder.decode(encoded, 0, decoded, 0, iters);
}

From source file:com.lucure.core.codec.ForUtil.java

License:Apache License

/**
 * Skip the next block of data./*from   w ww . j  a v  a2s  .c  o m*/
 *
 * @param in      the input where to read data
 * @throws IOException If there is a low-level I/O error
 */
void skipBlock(IndexInput in) throws IOException {
    final int numBits = in.readByte();
    if (numBits == ALL_VALUES_EQUAL) {
        in.readVInt();
        return;
    }
    assert numBits > 0 && numBits <= 32 : numBits;
    final int encodedSize = encodedSizes[numBits];
    in.seek(in.getFilePointer() + encodedSize);
}

From source file:com.lucure.core.codec.LucureSkipReader.java

License:Apache License

@Override
protected int readSkipData(int level, IndexInput skipStream) throws IOException {
    // if (DEBUG) {
    //   System.out.println("readSkipData level=" + level);
    // }//from   w  ww.j a  v a  2 s .  c  o m
    int delta = skipStream.readVInt();
    // if (DEBUG) {
    //   System.out.println("  delta=" + delta);
    // }
    docPointer[level] += skipStream.readVInt();
    // if (DEBUG) {
    //   System.out.println("  docFP=" + docPointer[level]);
    // }

    if (posPointer != null) {
        posPointer[level] += skipStream.readVInt();
        // if (DEBUG) {
        //   System.out.println("  posFP=" + posPointer[level]);
        // }
        posBufferUpto[level] = skipStream.readVInt();
        // if (DEBUG) {
        //   System.out.println("  posBufferUpto=" + posBufferUpto[level]);
        // }

        if (payloadByteUpto != null) {
            payloadByteUpto[level] = skipStream.readVInt();
        }

        if (payPointer != null) {
            payPointer[level] += skipStream.readVInt();
        }
    }
    return delta;
}

From source file:com.rocana.lucene.codec.v1.RocanaBlockTreeTermsReader.java

License:Apache License

private static BytesRef readBytesRef(IndexInput in) throws IOException {
    BytesRef bytes = new BytesRef();
    bytes.length = in.readVInt();
    bytes.bytes = new byte[bytes.length];
    in.readBytes(bytes.bytes, 0, bytes.length);
    return bytes;
}

From source file:com.sindicetech.siren.index.codecs.siren10.Siren10SkipListReader.java

License:Open Source License

@Override
protected int readSkipData(final int level, final IndexInput skipStream) throws IOException {
    final int delta = skipStream.readVInt();
    docIndex[level].read(skipStream, false);
    return delta;
}

From source file:org.apache.blur.lucene.codec.DiskDocValuesProducer.java

License:Apache License

private void readFields(IndexInput meta, FieldInfos infos) throws IOException {
    int fieldNumber = meta.readVInt();
    while (fieldNumber != -1) {
        byte type = meta.readByte();
        if (type == DiskDocValuesFormat.NUMERIC) {
            numerics.put(fieldNumber, readNumericEntry(meta));
        } else if (type == DiskDocValuesFormat.BINARY) {
            BinaryEntry b = readBinaryEntry(meta);
            binaries.put(fieldNumber, b);
        } else if (type == DiskDocValuesFormat.SORTED) {
            // sorted = binary + numeric
            if (meta.readVInt() != fieldNumber) {
                throw new CorruptIndexException("sorted entry for field: " + fieldNumber + " is corrupt");
            }/* ww w . j av  a  2  s. c o m*/
            if (meta.readByte() != DiskDocValuesFormat.BINARY) {
                throw new CorruptIndexException("sorted entry for field: " + fieldNumber + " is corrupt");
            }
            BinaryEntry b = readBinaryEntry(meta);
            binaries.put(fieldNumber, b);

            if (meta.readVInt() != fieldNumber) {
                throw new CorruptIndexException("sorted entry for field: " + fieldNumber + " is corrupt");
            }
            if (meta.readByte() != DiskDocValuesFormat.NUMERIC) {
                throw new CorruptIndexException("sorted entry for field: " + fieldNumber + " is corrupt");
            }
            NumericEntry n = readNumericEntry(meta);
            ords.put(fieldNumber, n);
        } else if (type == DiskDocValuesFormat.SORTED_SET) {
            // sortedset = binary + numeric + ordIndex
            if (meta.readVInt() != fieldNumber) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            if (meta.readByte() != DiskDocValuesFormat.BINARY) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            BinaryEntry b = readBinaryEntry(meta);
            binaries.put(fieldNumber, b);

            if (meta.readVInt() != fieldNumber) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            if (meta.readByte() != DiskDocValuesFormat.NUMERIC) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            NumericEntry n1 = readNumericEntry(meta);
            ords.put(fieldNumber, n1);

            if (meta.readVInt() != fieldNumber) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            if (meta.readByte() != DiskDocValuesFormat.NUMERIC) {
                throw new CorruptIndexException("sortedset entry for field: " + fieldNumber + " is corrupt");
            }
            NumericEntry n2 = readNumericEntry(meta);
            ordIndexes.put(fieldNumber, n2);
        } else {
            throw new CorruptIndexException("invalid type: " + type + ", resource=" + meta);
        }
        fieldNumber = meta.readVInt();
    }
}

From source file:org.apache.blur.lucene.codec.DiskDocValuesProducer.java

License:Apache License

static NumericEntry readNumericEntry(IndexInput meta) throws IOException {
    NumericEntry entry = new NumericEntry();
    entry.packedIntsVersion = meta.readVInt();
    entry.offset = meta.readLong();/*from  w  w w .j a v  a2s . com*/
    entry.count = meta.readVLong();
    entry.blockSize = meta.readVInt();
    return entry;
}

From source file:org.apache.blur.lucene.codec.DiskDocValuesProducer.java

License:Apache License

static BinaryEntry readBinaryEntry(IndexInput meta) throws IOException {
    BinaryEntry entry = new BinaryEntry();
    entry.minLength = meta.readVInt();
    entry.maxLength = meta.readVInt();//from w ww  .j  a  va  2  s  . c om
    entry.count = meta.readVLong();
    entry.offset = meta.readLong();
    if (entry.minLength != entry.maxLength) {
        entry.addressesOffset = meta.readLong();
        entry.packedIntsVersion = meta.readVInt();
        entry.blockSize = meta.readVInt();
    }
    return entry;
}

From source file:org.apache.blur.lucene.warmup.IndexTracerResult.java

License:Apache License

private static boolean readBoolean(IndexInput input) throws IOException {
    return input.readVInt() == 1;
}