List of usage examples for org.apache.lucene.store IndexInput readVInt
public int readVInt() throws IOException
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; }