Class FSTDictionary
- java.lang.Object
-
- org.apache.lucene.codecs.uniformsplit.FSTDictionary
-
- All Implemented Interfaces:
IndexDictionary
,Accountable
public class FSTDictionary extends Object implements IndexDictionary
Immutable statelessFST
-based index dictionary kept in memory.Use
IndexDictionary.Builder
to build theIndexDictionary
.Create a stateful
IndexDictionary.Browser
to seek a term in thisIndexDictionary
and get its corresponding block file pointer to the terms block file.Its greatest advantage is to be very compact in memory thanks to both the compaction of the
FST
as a byte array, and the incremental encoding of the leaves block pointer values, which are long integers in increasing order, withPositiveIntOutputs
.
With a compact dictionary in memory we can increase the number of blocks. This allows us to reduce the average block size, which means faster scan inside a block.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
FSTDictionary.Browser
StatefulFSTDictionary.Browser
to seek a term in thisFSTDictionary
and get its corresponding block file pointer in the block file.static class
FSTDictionary.BrowserSupplier
Provides statefulFSTDictionary.Browser
to seek in theFSTDictionary
.static class
FSTDictionary.Builder
Builds an immutableFSTDictionary
.
-
Constructor Summary
Constructors Modifier Constructor Description protected
FSTDictionary(FST<Long> fst)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FSTDictionary.Browser
browser()
Creates a newIndexDictionary.Browser
.long
ramBytesUsed()
protected static FSTDictionary
read(DataInput input, BlockDecoder blockDecoder, boolean isFSTOnHeap)
Reads aFSTDictionary
from the provided input.void
write(DataOutput output, BlockEncoder blockEncoder)
Writes this dictionary to the provided output.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
-
-
-
Method Detail
-
ramBytesUsed
public long ramBytesUsed()
- Specified by:
ramBytesUsed
in interfaceAccountable
-
write
public void write(DataOutput output, BlockEncoder blockEncoder) throws IOException
Description copied from interface:IndexDictionary
Writes this dictionary to the provided output.- Specified by:
write
in interfaceIndexDictionary
blockEncoder
- TheBlockEncoder
for specific encoding of this index dictionary; or null if none.- Throws:
IOException
-
read
protected static FSTDictionary read(DataInput input, BlockDecoder blockDecoder, boolean isFSTOnHeap) throws IOException
Reads aFSTDictionary
from the provided input.- Parameters:
blockDecoder
- TheBlockDecoder
to use for specific decoding; or null if none.- Throws:
IOException
-
browser
public FSTDictionary.Browser browser()
Description copied from interface:IndexDictionary
Creates a newIndexDictionary.Browser
.- Specified by:
browser
in interfaceIndexDictionary
-
-