public abstract class DocValuesConsumer
extends java.lang.Object
implements java.io.Closeable
The lifecycle is:
NormsFormat.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>)
,
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()
).
Closeable.close()
d.
Modifier and Type | Class and Description |
---|---|
(package private) static class |
DocValuesConsumer.BitsFilteredTermsEnum |
Modifier | Constructor and Description |
---|---|
protected |
DocValuesConsumer()
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
abstract void |
addBinaryField(FieldInfo field,
java.lang.Iterable<BytesRef> values)
Writes binary docvalues for a field.
|
abstract void |
addNumericField(FieldInfo field,
java.lang.Iterable<java.lang.Number> values)
Writes numeric docvalues for a field.
|
abstract void |
addSortedField(FieldInfo field,
java.lang.Iterable<BytesRef> values,
java.lang.Iterable<java.lang.Number> docToOrd)
Writes pre-sorted binary docvalues for a field.
|
abstract void |
addSortedNumericField(FieldInfo field,
java.lang.Iterable<java.lang.Number> docToValueCount,
java.lang.Iterable<java.lang.Number> values)
Writes pre-sorted numeric docvalues for a field
|
abstract void |
addSortedSetField(FieldInfo field,
java.lang.Iterable<BytesRef> values,
java.lang.Iterable<java.lang.Number> docToOrdCount,
java.lang.Iterable<java.lang.Number> ords)
Writes pre-sorted set docvalues for a field
|
static boolean |
isSingleValued(java.lang.Iterable<java.lang.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,
java.util.List<BinaryDocValues> toMerge,
java.util.List<Bits> docsWithField)
Merges the binary docvalues from
toMerge . |
void |
mergeNumericField(FieldInfo fieldInfo,
MergeState mergeState,
java.util.List<NumericDocValues> toMerge,
java.util.List<Bits> docsWithField)
Merges the numeric docvalues from
toMerge . |
void |
mergeSortedField(FieldInfo fieldInfo,
MergeState mergeState,
java.util.List<SortedDocValues> toMerge)
Merges the sorted docvalues from
toMerge . |
void |
mergeSortedNumericField(FieldInfo fieldInfo,
MergeState mergeState,
java.util.List<SortedNumericDocValues> toMerge)
Merges the sorted docvalues from
toMerge . |
void |
mergeSortedSetField(FieldInfo fieldInfo,
MergeState mergeState,
java.util.List<SortedSetDocValues> toMerge)
Merges the sortedset docvalues from
toMerge . |
static java.lang.Iterable<java.lang.Number> |
singletonView(java.lang.Iterable<java.lang.Number> docToValueCount,
java.lang.Iterable<java.lang.Number> values,
java.lang.Number missingValue)
Helper: returns single-valued view, using
missingValue when count is zero |
protected DocValuesConsumer()
public abstract void addNumericField(FieldInfo field, java.lang.Iterable<java.lang.Number> values) throws java.io.IOException
field
- field informationvalues
- Iterable of numeric values (one for each document). null
indicates
a missing value.java.io.IOException
- if an I/O error occurred.public abstract void addBinaryField(FieldInfo field, java.lang.Iterable<BytesRef> values) throws java.io.IOException
field
- field informationvalues
- Iterable of binary values (one for each document). null
indicates
a missing value.java.io.IOException
- if an I/O error occurred.public abstract void addSortedField(FieldInfo field, java.lang.Iterable<BytesRef> values, java.lang.Iterable<java.lang.Number> docToOrd) throws java.io.IOException
field
- field informationvalues
- Iterable of binary values in sorted order (deduplicated).docToOrd
- Iterable of ordinals (one for each document). -1
indicates
a missing value.java.io.IOException
- if an I/O error occurred.public abstract void addSortedNumericField(FieldInfo field, java.lang.Iterable<java.lang.Number> docToValueCount, java.lang.Iterable<java.lang.Number> values) throws java.io.IOException
field
- field informationdocToValueCount
- 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).java.io.IOException
- if an I/O error occurred.public abstract void addSortedSetField(FieldInfo field, java.lang.Iterable<BytesRef> values, java.lang.Iterable<java.lang.Number> docToOrdCount, java.lang.Iterable<java.lang.Number> ords) throws java.io.IOException
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).java.io.IOException
- if an I/O error occurred.public void merge(MergeState mergeState) throws java.io.IOException
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>)
for each field,
depending on its type.
Implementations can override this method
for more sophisticated merging (bulk-byte copying, etc).java.io.IOException
public void mergeNumericField(FieldInfo fieldInfo, MergeState mergeState, java.util.List<NumericDocValues> toMerge, java.util.List<Bits> docsWithField) throws java.io.IOException
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.
java.io.IOException
public void mergeBinaryField(FieldInfo fieldInfo, MergeState mergeState, java.util.List<BinaryDocValues> toMerge, java.util.List<Bits> docsWithField) throws java.io.IOException
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.
java.io.IOException
public void mergeSortedNumericField(FieldInfo fieldInfo, MergeState mergeState, java.util.List<SortedNumericDocValues> toMerge) throws java.io.IOException
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.
java.io.IOException
public void mergeSortedField(FieldInfo fieldInfo, MergeState mergeState, java.util.List<SortedDocValues> toMerge) throws java.io.IOException
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 .
java.io.IOException
public void mergeSortedSetField(FieldInfo fieldInfo, MergeState mergeState, java.util.List<SortedSetDocValues> toMerge) throws java.io.IOException
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 .
java.io.IOException
public static boolean isSingleValued(java.lang.Iterable<java.lang.Number> docToValueCount)
public static java.lang.Iterable<java.lang.Number> singletonView(java.lang.Iterable<java.lang.Number> docToValueCount, java.lang.Iterable<java.lang.Number> values, java.lang.Number missingValue)
missingValue
when count is zero