addSortedNumericField(mergeFieldInfo, new EmptyDocValuesProducer() { @Override
@Override public void addSortedNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addSortedNumericField(field, valuesProducer); }
dvConsumer.addSortedNumericField(fieldInfo, new EmptyDocValuesProducer() { @Override
addSortedNumericField(mergeFieldInfo, new EmptyDocValuesProducer() { @Override
@Override public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException { getInstance(field).addSortedNumericField(field, docToValueCount, values); }
@Override public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException { getInstance(field).addSortedNumericField(field, docToValueCount, values); }
@Override public void addSortedNumericField(FieldInfo field, DocValuesProducer valuesProducer) throws IOException { getInstance(field).addSortedNumericField(field, valuesProducer); }
@Override public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException { delegate.addSortedNumericField(field, docToValueCount, values); BKDTreeWriter writer = new BKDTreeWriter(maxPointsInLeafNode, maxPointsSortInHeap); Iterator<Number> valueIt = values.iterator(); Iterator<Number> valueCountIt = docToValueCount.iterator(); for (int docID=0;docID<state.segmentInfo.maxDoc();docID++) { assert valueCountIt.hasNext(); int count = valueCountIt.next().intValue(); for(int i=0;i<count;i++) { assert valueIt.hasNext(); long value = valueIt.next().longValue(); int latEnc = (int) (value >> 32); int lonEnc = (int) (value & 0xffffffff); writer.add(latEnc, lonEnc, docID); } } long indexStartFP = writer.finish(out); fieldIndexFPs.put(field.number, indexStartFP); }
@Override public void addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values) throws IOException { delegate.addSortedNumericField(field, docToValueCount, values); RangeTreeWriter writer = new RangeTreeWriter(maxPointsInLeafNode, maxPointsSortInHeap); Iterator<Number> valueIt = values.iterator(); Iterator<Number> valueCountIt = docToValueCount.iterator(); //System.out.println("\nSNF: field=" + field.name); for (int docID=0;docID<state.segmentInfo.maxDoc();docID++) { assert valueCountIt.hasNext(); int count = valueCountIt.next().intValue(); for(int i=0;i<count;i++) { assert valueIt.hasNext(); writer.add(valueIt.next().longValue(), docID); } } long indexStartFP = writer.finish(out); fieldIndexFPs.put(field.number, indexStartFP); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); assert pendingCounts.size() == maxDoc; final PackedLongValues values = pending.build(); final PackedLongValues valueCounts = pendingCounts.build(); dvConsumer.addSortedNumericField(fieldInfo, // doc -> valueCount new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new CountIterator(valueCounts); } }, // values new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new ValuesIterator(values); } }); }
@Override public void flush(SegmentWriteState state, DocValuesConsumer dvConsumer) throws IOException { final int maxDoc = state.segmentInfo.maxDoc(); assert pendingCounts.size() == maxDoc; final PackedLongValues values = pending.build(); final PackedLongValues valueCounts = pendingCounts.build(); dvConsumer.addSortedNumericField(fieldInfo, // doc -> valueCount new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new CountIterator(valueCounts); } }, // values new Iterable<Number>() { @Override public Iterator<Number> iterator() { return new ValuesIterator(values); } }); }
dvConsumer.addSortedNumericField(fieldInfo, new EmptyDocValuesProducer() { @Override