## org.apache.lucene.codecs
Class DocValuesConsumer

    java.lang.Object
      org.apache.lucene.codecs.DocValuesConsumer

All Implemented Interfaces:
  Closeable

    public abstract class DocValuesConsumer

extends Object
implements Closeable

Abstract API that consumes numeric, binary and sorted docvalues. Concrete implementations of this actually do "something" with the docvalues (write it into the index in a specific format).

The lifecycle is:

1. DocValuesConsumer is created by `DocValuesFormat.fieldsConsumer(SegmentWriteState)` or `NormsFormat.normsConsumer(SegmentWriteState)`.
2. `addNumericField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<java.lang.Number>)`, `addBinaryField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>)`, or `addSortedField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>, java.lang.Iterable<java.lang.Number>)` are called for each Numeric, Binary, or Sorted docvalues field. The API is a "pull" rather than "push", and the implementation is free to iterate over the values multiple times (`Iterable.iterator()`).
3. After all fields are added, the consumer is `Closeable.close()`d.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Constructor Summary
`protected` `DocValuesConsumer()` Sole constructor.

Method Summary
`abstract void` `addBinaryField(FieldInfo field, Iterable<BytesRef> values)` Writes binary docvalues for a field.
`abstract void` `addNumericField(FieldInfo field, Iterable<Number> values)` Writes numeric docvalues for a field.
`abstract void` `addSortedField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrd)` Writes pre-sorted binary docvalues for a field.
`abstract void` `addSortedSetField(FieldInfo field, Iterable<BytesRef> values, Iterable<Number> docToOrdCount, Iterable<Number> ords)` Writes pre-sorted set docvalues for a field
`void` `mergeBinaryField(FieldInfo fieldInfo, MergeState mergeState, List<BinaryDocValues> toMerge)` Merges the binary docvalues from `toMerge`.
`void` `mergeNumericField(FieldInfo fieldInfo, MergeState mergeState, List<NumericDocValues> toMerge)` Merges the numeric docvalues from `toMerge`.
`void` `mergeSortedField(FieldInfo fieldInfo, MergeState mergeState, List<SortedDocValues> toMerge)` Merges the sorted docvalues from `toMerge`.
`void` `mergeSortedSetField(FieldInfo fieldInfo, MergeState mergeState, List<SortedSetDocValues> toMerge)` Merges the sortedset docvalues from `toMerge`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface java.io.Closeable
`close`

Constructor Detail

### DocValuesConsumer

    protected DocValuesConsumer()

  Sole constructor. (For invocation by subclass constructors, typically implicit.)

Method Detail

### addNumericField

    public abstract void addNumericField(FieldInfo field,
                                         Iterable<Number> values)
                                  throws IOException

  Writes numeric docvalues for a field.

  Parameters:
    `field` - field information
    `values` - Iterable of numeric values (one for each document).
  Throws:
    `IOException` - if an I/O error occurred.

### addBinaryField

    public abstract void addBinaryField(FieldInfo field,
                                        Iterable<BytesRef> values)
                                 throws IOException

  Writes binary docvalues for a field.

  Parameters:
    `field` - field information
    `values` - Iterable of binary values (one for each document).
  Throws:
    `IOException` - if an I/O error occurred.

### addSortedField

    public abstract void addSortedField(FieldInfo field,
                                        Iterable<BytesRef> values,
                                        Iterable<Number> docToOrd)
                                 throws IOException

  Writes pre-sorted binary docvalues for a field.

  Parameters:
    `field` - field information
    `values` - Iterable of binary values in sorted order (deduplicated).
    `docToOrd` - Iterable of ordinals (one for each document).
  Throws:
    `IOException` - if an I/O error occurred.

### addSortedSetField

    public abstract void addSortedSetField(FieldInfo field,
                                           Iterable<BytesRef> values,
                                           Iterable<Number> docToOrdCount,
                                           Iterable<Number> ords)
                                    throws IOException

  Writes pre-sorted set docvalues for a field

  Parameters:
    `field` - field information
    `values` - Iterable of binary values in sorted order (deduplicated).
    `docToOrdCount` - Iterable of the number of values for each document.
    `ords` - Iterable of ordinal occurrences (docToOrdCount*maxDoc total).
  Throws:
    `IOException` - if an I/O error occurred.

### mergeNumericField

    public void mergeNumericField(FieldInfo fieldInfo,
                                  MergeState mergeState,
                                  List<NumericDocValues> toMerge)
                           throws IOException

  Merges the numeric docvalues from `toMerge`.

  The default implementation calls `addNumericField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<java.lang.Number>)`, passing an Iterable that merges and filters deleted documents on the fly.

  Throws:
    `IOException`

### mergeBinaryField

    public void mergeBinaryField(FieldInfo fieldInfo,
                                 MergeState mergeState,
                                 List<BinaryDocValues> toMerge)
                          throws IOException

  Merges the binary docvalues from `toMerge`.

  The default implementation calls `addBinaryField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>)`, passing an Iterable that merges and filters deleted documents on the fly.

  Throws:
    `IOException`

### mergeSortedField

    public void mergeSortedField(FieldInfo fieldInfo,
                                 MergeState mergeState,
                                 List<SortedDocValues> toMerge)
                          throws IOException

  Merges the sorted docvalues from `toMerge`.

  The default implementation calls `addSortedField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>, java.lang.Iterable<java.lang.Number>)`, passing an Iterable that merges ordinals and values and filters deleted documents .

  Throws:
    `IOException`

### mergeSortedSetField

    public void mergeSortedSetField(FieldInfo fieldInfo,
                                    MergeState mergeState,
                                    List<SortedSetDocValues> toMerge)
                             throws IOException

  Merges the sortedset docvalues from `toMerge`.

  The default implementation calls `addSortedSetField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>, java.lang.Iterable<java.lang.Number>, java.lang.Iterable<java.lang.Number>)`, passing an Iterable that merges ordinals and values and filters deleted documents .

  Throws:
    `IOException`

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.