addBinaryField(mergeFieldInfo, new EmptyDocValuesProducer() { @Override
@Override public void addBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addBinaryField(field, valuesProducer); }
pendingDeletes.onDocValuesUpdate(fieldInfo, updateSupplier.apply(fieldInfo)); if (type == DocValuesType.BINARY) { fieldsConsumer.addBinaryField(fieldInfo, new EmptyDocValuesProducer() { @Override public BinaryDocValues getBinary(FieldInfo fieldInfoIn) throws IOException {
@Override public void flush(SegmentWriteState state, Sorter.DocMap sortMap, DocValuesConsumer dvConsumer) throws IOException { bytes.freeze(false); final PackedLongValues lengths = this.lengths.build(); final SortingLeafReader.CachedBinaryDVs sorted; if (sortMap != null) { sorted = sortDocValues(state.segmentInfo.maxDoc(), sortMap, new BufferedBinaryDocValues(lengths, maxLength, bytes.getDataInput(), docsWithField.iterator())); } else { sorted = null; } dvConsumer.addBinaryField(fieldInfo, new EmptyDocValuesProducer() { @Override public BinaryDocValues getBinary(FieldInfo fieldInfoIn) { if (fieldInfoIn != fieldInfo) { throw new IllegalArgumentException("wrong fieldInfo"); } if (sorted == null) { return new BufferedBinaryDocValues(lengths, maxLength, bytes.getDataInput(), docsWithField.iterator()); } else { return new SortingLeafReader.SortingBinaryDocValues(sorted); } } }); }
addBinaryField(mergeFieldInfo, new EmptyDocValuesProducer() { @Override
addBinaryField(fieldInfo, new Iterable<BytesRef>() { @Override
addBinaryField(fieldInfo, new Iterable<BytesRef>() { @Override
@Override public void addBinaryField(FieldInfo field, Iterable<BytesRef> values) throws IOException { getInstance(field).addBinaryField(field, values); }
@Override public void addBinaryField(FieldInfo field, Iterable<BytesRef> values) throws IOException { getInstance(field).addBinaryField(field, values); }
@Override public void addBinaryField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addBinaryField(field, valuesProducer); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); bytes.freeze(false); final PackedLongValues lengths = this.lengths.build(); dvConsumer.addBinaryField(fieldInfo, new Iterable<BytesRef>() { @Override public Iterator<BytesRef> iterator() { return new BytesIterator(maxDoc, lengths); } }); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); bytes.freeze(false); final PackedLongValues lengths = this.lengths.build(); dvConsumer.addBinaryField(fieldInfo, new Iterable<BytesRef>() { @Override public Iterator<BytesRef> iterator() { return new BytesIterator(maxDoc, lengths); } }); }
@Override public void addBinaryField(FieldInfo field, Iterable<BytesRef> values) throws IOException { delegate.addBinaryField(field, values); BKD3DTreeWriter writer = new BKD3DTreeWriter(maxPointsInLeafNode, maxPointsSortInHeap); Iterator<BytesRef> valuesIt = values.iterator(); for (int docID=0;docID<state.segmentInfo.maxDoc();docID++) { assert valuesIt.hasNext(); BytesRef value = valuesIt.next(); // TODO: we should allow multi-valued here, just appended into the BDV // 3 ints packed into byte[] if (value != null) { assert value.length == 12; int x = Geo3DDocValuesFormat.readInt(value.bytes, value.offset); int y = Geo3DDocValuesFormat.readInt(value.bytes, value.offset+4); int z = Geo3DDocValuesFormat.readInt(value.bytes, value.offset+8); writer.add(x, y, z, docID); } } long indexStartFP = writer.finish(out); fieldIndexFPs.put(field.number, indexStartFP); }
pendingDeletes.onDocValuesUpdate(fieldInfo, updateSupplier.apply(fieldInfo)); if (type == DocValuesType.BINARY) { fieldsConsumer.addBinaryField(fieldInfo, new EmptyDocValuesProducer() { @Override public BinaryDocValues getBinary(FieldInfo fieldInfoIn) throws IOException {
try (final DocValuesConsumer fieldsConsumer = dvFormat.fieldsConsumer(state)) { fieldsConsumer.addBinaryField(fieldInfo, new Iterable<BytesRef>() { final BinaryDocValues currentValues = reader.getBinaryDocValues(field); final Bits docsWithField = reader.getDocsWithField(field);
try (final DocValuesConsumer fieldsConsumer = dvFormat.fieldsConsumer(state)) { fieldsConsumer.addBinaryField(fieldInfo, new Iterable<BytesRef>() { final BinaryDocValues currentValues = reader.getBinaryDocValues(field); final Bits docsWithField = reader.getDocsWithField(field);
@Override public void flush(SegmentWriteState state, Sorter.DocMap sortMap, DocValuesConsumer dvConsumer) throws IOException { bytes.freeze(false); final PackedLongValues lengths = this.lengths.build(); final SortingLeafReader.CachedBinaryDVs sorted; if (sortMap != null) { sorted = sortDocValues(state.segmentInfo.maxDoc(), sortMap, new BufferedBinaryDocValues(lengths, maxLength, bytes.getDataInput(), docsWithField.iterator())); } else { sorted = null; } dvConsumer.addBinaryField(fieldInfo, new EmptyDocValuesProducer() { @Override public BinaryDocValues getBinary(FieldInfo fieldInfoIn) { if (fieldInfoIn != fieldInfo) { throw new IllegalArgumentException("wrong fieldInfo"); } if (sorted == null) { return new BufferedBinaryDocValues(lengths, maxLength, bytes.getDataInput(), docsWithField.iterator()); } else { return new SortingLeafReader.SortingBinaryDocValues(sorted); } } }); }