internal Iterator(byte[] data, int cardinality, int indexInterval, MonotonicAppendingInt64Buffer docIDs, MonotonicAppendingInt64Buffer offsets) { this.data = data; this.cardinality = cardinality; this.indexInterval = indexInterval; this.docIDs = docIDs; this.offsets = offsets; offset = 0; nextDocs = new int[BLOCK_SIZE]; Arrays.Fill(nextDocs, -1); i = BLOCK_SIZE; nextExceptions = new int[BLOCK_SIZE]; blockIdx = -1; docID = -1; }
internal static DocMap Build(int maxDoc, IBits liveDocs) { Debug.Assert(liveDocs != null); MonotonicAppendingInt64Buffer docMap = new MonotonicAppendingInt64Buffer(); int del = 0; for (int i = 0; i < maxDoc; ++i) { docMap.Add(i - del); if (!liveDocs.Get(i)) { ++del; } } docMap.Freeze(); int numDeletedDocs = del; Debug.Assert(docMap.Count == maxDoc); return(new DocMapAnonymousInnerClassHelper(maxDoc, liveDocs, docMap, numDeletedDocs)); }
internal virtual MonotonicAppendingInt64Buffer GetDeletes(IList <AtomicReader> readers) { MonotonicAppendingInt64Buffer deletes = new MonotonicAppendingInt64Buffer(); int deleteCount = 0; foreach (AtomicReader reader in readers) { int maxDoc = reader.MaxDoc; IBits liveDocs = reader.LiveDocs; for (int i = 0; i < maxDoc; ++i) { if (liveDocs != null && !liveDocs.Get(i)) { ++deleteCount; } else { deletes.Add(deleteCount); } } } deletes.Freeze(); return(deletes); }
internal PForDeltaDocIdSet(byte[] data, int cardinality, int indexInterval, MonotonicAppendingInt64Buffer docIDs, MonotonicAppendingInt64Buffer offsets) { this.data = data; this.cardinality = cardinality; this.indexInterval = indexInterval; this.docIDs = docIDs; this.offsets = offsets; }
internal Iterator(byte[] data, int cardinality, int indexInterval, MonotonicAppendingInt64Buffer positions, MonotonicAppendingInt64Buffer wordNums) { this.@in = new ByteArrayDataInput(data); this.cardinality = cardinality; this.indexInterval = indexInterval; this.positions = positions; this.wordNums = wordNums; wordNum = -1; word = 0; bitList = 0; sequenceNum = -1; docID = -1; indexThreshold = IndexThreshold(cardinality, indexInterval); }
private readonly MonotonicAppendingInt64Buffer positions, wordNums; // wordNums[i] starts at the sequence at positions[i] internal WAH8DocIdSet(byte[] data, int cardinality, int indexInterval, MonotonicAppendingInt64Buffer positions, MonotonicAppendingInt64Buffer wordNums) { this.data = data; this.cardinality = cardinality; this.indexInterval = indexInterval; this.positions = positions; this.wordNums = wordNums; }
/// <summary> /// Build a new <see cref="WAH8DocIdSet"/>. </summary> public virtual WAH8DocIdSet Build() { if (cardinality == 0) { if (Debugging.AssertsEnabled) { Debugging.Assert(lastWordNum == -1); } return(EMPTY); } WriteSequence(); byte[] data = Arrays.CopyOf(@out.Bytes, @out.Length); // Now build the index int valueCount = (numSequences - 1) / indexInterval + 1; MonotonicAppendingInt64Buffer indexPositions, indexWordNums; if (valueCount <= 1) { indexPositions = indexWordNums = SINGLE_ZERO_BUFFER; } else { const int pageSize = 128; int initialPageCount = (valueCount + pageSize - 1) / pageSize; MonotonicAppendingInt64Buffer positions = new MonotonicAppendingInt64Buffer(initialPageCount, pageSize, PackedInt32s.COMPACT); MonotonicAppendingInt64Buffer wordNums = new MonotonicAppendingInt64Buffer(initialPageCount, pageSize, PackedInt32s.COMPACT); positions.Add(0L); wordNums.Add(0L); Iterator it = new Iterator(data, cardinality, int.MaxValue, SINGLE_ZERO_BUFFER, SINGLE_ZERO_BUFFER); if (Debugging.AssertsEnabled) { Debugging.Assert([email protected] == 0); Debugging.Assert(it.wordNum == -1); } for (int i = 1; i < valueCount; ++i) { // skip indexInterval sequences for (int j = 0; j < indexInterval; ++j) { bool readSequence = it.ReadSequence(); if (Debugging.AssertsEnabled) { Debugging.Assert(readSequence); } it.SkipDirtyBytes(); } int position = [email protected]; int wordNum = it.wordNum; positions.Add(position); wordNums.Add(wordNum + 1); } positions.Freeze(); wordNums.Freeze(); indexPositions = positions; indexWordNums = wordNums; } return(new WAH8DocIdSet(data, cardinality, indexInterval, indexPositions, indexWordNums)); }
public DocMapAnonymousInnerClassHelper(SortingOneMerge outerInstance, MergeState mergeState, MonotonicAppendingInt64Buffer deletes) { this.outerInstance = outerInstance; this.mergeState = mergeState; this.deletes = deletes; }
public DocMapAnonymousClass(int maxDoc, MonotonicAppendingInt64Buffer newToOld, MonotonicAppendingInt64Buffer oldToNew) { this.maxDoc = maxDoc; this.newToOld = newToOld; this.oldToNew = oldToNew; }