org.apache.lucene.codecs

## Class DocValuesConsumer

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

- All Implemented Interfaces:
    Closeable, AutoCloseable

      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 `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>)`, `addSortedField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<org.apache.lucene.util.BytesRef>, java.lang.Iterable<java.lang.Number>)`, `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>)`, or `addSortedNumericField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<java.lang.Number>, java.lang.Iterable<java.lang.Number>)` are called for each Numeric, Binary, Sorted, SortedSet, or SortedNumeric 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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DocValuesConsumer()` Sole constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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` | `addSortedNumericField(FieldInfo field, Iterable<Number> docToValueCount, Iterable<Number> values)` Writes pre-sorted numeric 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
    `static boolean` | `isSingleValued(Iterable<Number> docToValueCount)` Helper: returns true if the given docToValue count contains only at most one value
    `void` | `merge(MergeState mergeState)` Merges in the fields from the readers in `mergeState`.
    `void` | `mergeBinaryField(FieldInfo fieldInfo, MergeState mergeState, List<BinaryDocValues> toMerge, List<Bits> docsWithField)` Merges the binary docvalues from `toMerge`.
    `void` | `mergeNumericField(FieldInfo fieldInfo, MergeState mergeState, List<NumericDocValues> toMerge, List<Bits> docsWithField)` Merges the numeric docvalues from `toMerge`.
    `void` | `mergeSortedField(FieldInfo fieldInfo, MergeState mergeState, List<SortedDocValues> toMerge)` Merges the sorted docvalues from `toMerge`.
    `void` | `mergeSortedNumericField(FieldInfo fieldInfo, MergeState mergeState, List<SortedNumericDocValues> toMerge, List<SortedNumericDocValues> toMerge2)` Merges the sorted docvalues from `toMerge`.
    `void` | `mergeSortedSetField(FieldInfo fieldInfo, MergeState mergeState, List<SortedSetDocValues> toMerge)` Merges the sortedset docvalues from `toMerge`.
    `static Iterable<Number>` | `singletonView(Iterable<Number> docToValueCount, Iterable<Number> values, Number missingValue)` Helper: returns single-valued view, using `missingValue` when count is zero

    - ### 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). `null` indicates a missing value.
      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). `null` indicates a missing value.
      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). `-1` indicates a missing value.
      Throws:
        `IOException` - if an I/O error occurred.

    - #### addSortedNumericField

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

      Writes pre-sorted numeric docvalues for a field
      Parameters:
        `field` - field information
        `docToValueCount` - Iterable of the number of values for each document. A zero count indicates a missing value.
        `values` - Iterable of numeric values in sorted order (not deduplicated).
      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. A zero ordinal count indicates a missing value.
        `ords` - Iterable of ordinal occurrences (docToOrdCount*maxDoc total).
      Throws:
        `IOException` - if an I/O error occurred.

    - #### merge

          public void merge(MergeState mergeState)
                     throws IOException

      Merges in the fields from the readers in `mergeState`. The default implementation calls `mergeNumericField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.NumericDocValues>, java.util.List<org.apache.lucene.util.Bits>)`, `mergeBinaryField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.BinaryDocValues>, java.util.List<org.apache.lucene.util.Bits>)`, `mergeSortedField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.SortedDocValues>)`, `mergeSortedSetField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.SortedSetDocValues>)`, or `mergeSortedNumericField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.SortedNumericDocValues>, java.util.List<org.apache.lucene.index.SortedNumericDocValues>)` for each field, depending on its type. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).
      Throws:
        `IOException`

    - #### mergeNumericField

          public void mergeNumericField(FieldInfo fieldInfo,
                                        MergeState mergeState,
                                        List<NumericDocValues> toMerge,
                                        List<Bits> docsWithField)
                                 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,
                                       List<Bits> docsWithField)
                                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`

    - #### mergeSortedNumericField

          public void mergeSortedNumericField(FieldInfo fieldInfo,
                                              MergeState mergeState,
                                              List<SortedNumericDocValues> toMerge,
                                              List<SortedNumericDocValues> toMerge2)
                                       throws IOException

      Merges the sorted docvalues from `toMerge`.

      The default implementation calls `addSortedNumericField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<java.lang.Number>, java.lang.Iterable<java.lang.Number>)`, passing iterables that filter deleted documents.

      We require two `toMerge` lists because we need to separately iterate the values for each segment concurrently.

      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`

    - #### isSingleValued

          public static boolean isSingleValued(Iterable<Number> docToValueCount)

      Helper: returns true if the given docToValue count contains only at most one value

    - #### singletonView

          public static Iterable<Number> singletonView(Iterable<Number> docToValueCount,
                                                       Iterable<Number> values,
                                                       Number missingValue)

      Helper: returns single-valued view, using `missingValue` when count is zero

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