@Override public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addSortedField(field, valuesProducer); }
sorted = null; dvConsumer.addSortedField(fieldInfo, new EmptyDocValuesProducer() { @Override
addSortedField(fieldInfo, new EmptyDocValuesProducer() { @Override
@Override public void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException { getInstance(field).addSortedField(field, values, docToOrd); }
@Override public void addSortedField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addSortedField(field, valuesProducer); }
@Override public void addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd) throws IOException { getInstance(field).addSortedField(field, values, docToOrd); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); assert pending.size() == maxDoc; final int valueCount = hash.size(); final PackedLongValues ords = pending.build(); final int[] sortedValues = hash.sort(BytesRef.getUTF8SortedAsUnicodeComparator()); final int[] ordMap = new int[valueCount]; for(int ord=0;ord<valueCount;ord++) { ordMap[sortedValues[ord]] = ord; } dvConsumer.addSortedField(fieldInfo, // ord -> value new Iterable<BytesRef>() { @Override public Iterator<BytesRef> iterator() { return new ValuesIterator(sortedValues, valueCount, hash); } }, // doc -> ord new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new OrdsIterator(ordMap, maxDoc, ords); } }); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); assert pending.size() == maxDoc; final int valueCount = hash.size(); final PackedLongValues ords = pending.build(); final int[] sortedValues = hash.sort(BytesRef.getUTF8SortedAsUnicodeComparator()); final int[] ordMap = new int[valueCount]; for(int ord=0;ord<valueCount;ord++) { ordMap[sortedValues[ord]] = ord; } dvConsumer.addSortedField(fieldInfo, // ord -> value new Iterable<BytesRef>() { @Override public Iterator<BytesRef> iterator() { return new ValuesIterator(sortedValues, valueCount, hash); } }, // doc -> ord new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new OrdsIterator(ordMap, maxDoc, ords); } }); }
sorted = null; dvConsumer.addSortedField(fieldInfo, new EmptyDocValuesProducer() { @Override
addSortedField(fieldInfo, new EmptyDocValuesProducer() { @Override