private void mergeDocValues(SegmentWriteState segmentWriteState) throws IOException { try (DocValuesConsumer consumer = codec.docValuesFormat().fieldsConsumer(segmentWriteState)) { consumer.merge(mergeState); } }
@Override public void merge(MergeState mergeState) throws IOException { Map<DocValuesConsumer, Collection<String>> consumersToField = new IdentityHashMap<>(); // Group each consumer by the fields it handles for (FieldInfo fi : mergeState.mergeFieldInfos) { DocValuesConsumer consumer = getInstance(fi); Collection<String> fieldsForConsumer = consumersToField.get(consumer); if (fieldsForConsumer == null) { fieldsForConsumer = new ArrayList<>(); consumersToField.put(consumer, fieldsForConsumer); } fieldsForConsumer.add(fi.name); } // Delegate the merge to the appropriate consumer PerFieldMergeState pfMergeState = new PerFieldMergeState(mergeState); try { for (Map.Entry<DocValuesConsumer, Collection<String>> e : consumersToField.entrySet()) { e.getKey().merge(pfMergeState.apply(e.getValue())); } } finally { pfMergeState.reset(); } }
private void mergeDocValues(SegmentWriteState segmentWriteState) throws IOException { try (DocValuesConsumer consumer = codec.docValuesFormat().fieldsConsumer(segmentWriteState)) { consumer.merge(mergeState); } }
private void mergeDocValues(SegmentWriteState segmentWriteState) throws IOException { try (DocValuesConsumer consumer = codec.docValuesFormat().fieldsConsumer(segmentWriteState)) { consumer.merge(mergeState); } }
private void mergeDocValues(SegmentWriteState segmentWriteState) throws IOException { try (DocValuesConsumer consumer = codec.docValuesFormat().fieldsConsumer(segmentWriteState)) { consumer.merge(mergeState); } }
@Override public void merge(MergeState mergeState) throws IOException { Map<DocValuesConsumer, Collection<String>> consumersToField = new IdentityHashMap<>(); // Group each consumer by the fields it handles for (FieldInfo fi : mergeState.mergeFieldInfos) { DocValuesConsumer consumer = getInstance(fi); Collection<String> fieldsForConsumer = consumersToField.get(consumer); if (fieldsForConsumer == null) { fieldsForConsumer = new ArrayList<>(); consumersToField.put(consumer, fieldsForConsumer); } fieldsForConsumer.add(fi.name); } // Delegate the merge to the appropriate consumer PerFieldMergeState pfMergeState = new PerFieldMergeState(mergeState); try { for (Map.Entry<DocValuesConsumer, Collection<String>> e : consumersToField.entrySet()) { e.getKey().merge(pfMergeState.apply(e.getValue())); } } finally { pfMergeState.reset(); } }