org.apache.lucene.codecs

## Class NormsConsumer

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

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public abstract class NormsConsumer
      extends Object
      implements Closeable

  Abstract API that consumes normalization values. Concrete implementations of this actually do "something" with the norms (write it into the index in a specific format).

  The lifecycle is:

  1. NormsConsumer is created by `NormsFormat.normsConsumer(SegmentWriteState)`.
  2. `addNormsField(org.apache.lucene.index.FieldInfo, java.lang.Iterable<java.lang.Number>)` is called for each field with normalization values. 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` | `NormsConsumer()` Sole constructor.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `addNormsField(FieldInfo field, Iterable<Number> values)` Writes normalization values for a field.
    `void` | `merge(MergeState mergeState)` Merges in the fields from the readers in `mergeState`.
    `void` | `mergeNormsField(FieldInfo fieldInfo, MergeState mergeState, List<NumericDocValues> toMerge)` Merges the norms 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

    - #### NormsConsumer

          protected NormsConsumer()

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

  - ### Method Detail

    - #### addNormsField

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

      Writes normalization values for a field.
      Parameters:
        `field` - field information
        `values` - Iterable of numeric values (one for each document).
      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 `mergeNormsField(org.apache.lucene.index.FieldInfo, org.apache.lucene.index.MergeState, java.util.List<org.apache.lucene.index.NumericDocValues>)` for each field, filling segments with missing norms for the field with zeros. Implementations can override this method for more sophisticated merging (bulk-byte copying, etc).
      Throws:
        `IOException`

    - #### mergeNormsField

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

      Merges the norms from `toMerge`.

      The default implementation calls `addNormsField(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`

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