Class DocValuesConsumer
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
Lucene45DocValuesConsumer
The lifecycle is:
- DocValuesConsumer is created by
DocValuesFormat.fieldsConsumer(SegmentWriteState)
orNormsFormat.normsConsumer(SegmentWriteState)
. 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>)
, oraddSortedField(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()
).- After all fields are added, the consumer is
Closeable.close()
d.
-
Method Summary
Modifier and TypeMethodDescriptionabstract 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
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 fieldvoid
mergeBinaryField
(FieldInfo fieldInfo, MergeState mergeState, List<BinaryDocValues> toMerge, List<Bits> docsWithField) Merges the binary docvalues fromtoMerge
.void
mergeNumericField
(FieldInfo fieldInfo, MergeState mergeState, List<NumericDocValues> toMerge, List<Bits> docsWithField) Merges the numeric docvalues fromtoMerge
.void
mergeSortedField
(FieldInfo fieldInfo, MergeState mergeState, List<SortedDocValues> toMerge) Merges the sorted docvalues fromtoMerge
.void
mergeSortedSetField
(FieldInfo fieldInfo, MergeState mergeState, List<SortedSetDocValues> toMerge) Merges the sortedset docvalues fromtoMerge
.
-
Method Details
-
addNumericField
Writes numeric docvalues for a field.- Parameters:
field
- field informationvalues
- Iterable of numeric values (one for each document).null
indicates a missing value.- Throws:
IOException
- if an I/O error occurred.
-
addBinaryField
Writes binary docvalues for a field.- Parameters:
field
- field informationvalues
- 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 informationvalues
- 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 informationvalues
- 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 fromtoMerge
.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 fromtoMerge
.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 fromtoMerge
.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 fromtoMerge
.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
-