org.apache.lucene.codecs
Class DocValuesConsumer

java.lang.Object
  extended by org.apache.lucene.codecs.DocValuesConsumer
All Implemented Interfaces:
Closeable
Direct Known Subclasses:
Lucene45DocValuesConsumer

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), addBinaryField(org.apache.lucene.index.FieldInfo, java.lang.Iterable), or addSortedField(org.apache.lucene.index.FieldInfo, java.lang.Iterable, java.lang.Iterable) 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, 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 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). 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.

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.

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), 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), 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, java.lang.Iterable), 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, java.lang.Iterable, java.lang.Iterable), passing an Iterable that merges ordinals and values and filters deleted documents .

Throws:
IOException


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