Package org.apache.lucene.misc.util.fst
Class ListOfOutputs<T>
Wraps another Outputs implementation and encodes one or more of its output values. You can use
this when a single input may need to map to more than one output, maintaining order: pass the
same input with a different output by calling
FSTCompiler.add(IntsRef,Object)
multiple
times. The builder will then combine the outputs using the Outputs.merge(Object,Object)
method.
The resulting FST may not be minimal when an input has more than one output, as this requires pushing all multi-output values to a final state.
NOTE: the only way to create multiple outputs is to add the same input to the FST multiple
times in a row. This is how the FST maps a single input to multiple outputs (e.g. you cannot pass
a List<Object> to FSTCompiler.add(org.apache.lucene.util.IntsRef, T)
). If your outputs are longs, and you need at most
2, then use UpToTwoPositiveIntOutputs
instead since it stores the outputs more compactly
(by stealing a bit from each long value).
NOTE: this cannot wrap itself (ie you cannot make an FST with List<List<Object>> outputs using this).
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionoutputToString
(Object output) long
ramBytesUsed
(Object output) void
void
skipOutput
(DataInput in) toString()
void
write
(Object output, DataOutput out) void
writeFinalOutput
(Object output, DataOutput out)
-
Constructor Details
-
ListOfOutputs
-
-
Method Details
-
common
-
subtract
-
add
-
write
- Specified by:
write
in classOutputs<Object>
- Throws:
IOException
-
writeFinalOutput
- Overrides:
writeFinalOutput
in classOutputs<Object>
- Throws:
IOException
-
read
- Specified by:
read
in classOutputs<Object>
- Throws:
IOException
-
skipOutput
- Overrides:
skipOutput
in classOutputs<Object>
- Throws:
IOException
-
readFinalOutput
- Overrides:
readFinalOutput
in classOutputs<Object>
- Throws:
IOException
-
skipFinalOutput
- Overrides:
skipFinalOutput
in classOutputs<Object>
- Throws:
IOException
-
getNoOutput
- Specified by:
getNoOutput
in classOutputs<Object>
-
outputToString
- Specified by:
outputToString
in classOutputs<Object>
-
merge
-
toString
-
asList
-
ramBytesUsed
- Specified by:
ramBytesUsed
in classOutputs<Object>
-