Class FSTDictionary
- java.lang.Object
-
- org.apache.lucene.codecs.uniformsplit.FSTDictionary
-
- All Implemented Interfaces:
IndexDictionary,Accountable
public class FSTDictionary extends java.lang.Object implements IndexDictionary
Immutable statelessFST-based index dictionary kept in memory.Use
IndexDictionary.Builderto build theIndexDictionary.Create a stateful
IndexDictionary.Browserto seek a term in thisIndexDictionaryand 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
FSTas 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classFSTDictionary.BrowserStatefulFSTDictionary.Browserto seek a term in thisFSTDictionaryand get its corresponding block file pointer in the block file.static classFSTDictionary.BrowserSupplierProvides statefulFSTDictionary.Browserto seek in theFSTDictionary.static classFSTDictionary.BuilderBuilds an immutableFSTDictionary.
-
Field Summary
Fields Modifier and Type Field Description private static longBASE_RAM_USAGEprotected FST<java.lang.Long>fst-
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedFSTDictionary(FST<java.lang.Long> fst)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description FSTDictionary.Browserbrowser()Creates a newIndexDictionary.Browser.longramBytesUsed()Return the memory usage of this object in bytes.protected static FSTDictionaryread(DataInput input, BlockDecoder blockDecoder, boolean isFSTOnHeap)Reads aFSTDictionaryfrom the provided input.voidwrite(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
-
-
-
-
Field Detail
-
BASE_RAM_USAGE
private static final long BASE_RAM_USAGE
-
fst
protected final FST<java.lang.Long> fst
-
-
Constructor Detail
-
FSTDictionary
protected FSTDictionary(FST<java.lang.Long> fst)
-
-
Method Detail
-
ramBytesUsed
public long ramBytesUsed()
Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-
write
public void write(DataOutput output, BlockEncoder blockEncoder) throws java.io.IOException
Description copied from interface:IndexDictionaryWrites this dictionary to the provided output.- Specified by:
writein interfaceIndexDictionaryblockEncoder- TheBlockEncoderfor specific encoding of this index dictionary; or null if none.- Throws:
java.io.IOException
-
read
protected static FSTDictionary read(DataInput input, BlockDecoder blockDecoder, boolean isFSTOnHeap) throws java.io.IOException
Reads aFSTDictionaryfrom the provided input.- Parameters:
blockDecoder- TheBlockDecoderto use for specific decoding; or null if none.- Throws:
java.io.IOException
-
browser
public FSTDictionary.Browser browser()
Description copied from interface:IndexDictionaryCreates a newIndexDictionary.Browser.- Specified by:
browserin interfaceIndexDictionary
-
-