public class TSTLookup extends Lookup
TSTAutocompleteLookup.LookupPriorityQueue, Lookup.LookupResult| Modifier and Type | Field and Description |
|---|---|
(package private) TSTAutocomplete |
autocomplete |
private long |
count
Number of entries the lookup was built with
|
private static byte |
EQ_KID |
private static byte |
HAS_TOKEN |
private static byte |
HAS_VALUE |
private static byte |
HI_KID |
private static byte |
LO_KID |
(package private) TernaryTreeNode |
root |
private Directory |
tempDir |
private java.lang.String |
tempFileNamePrefix |
private static java.util.Comparator<BytesRef> |
utf8SortedAsUTF16SortOrder
TST uses UTF-16 sorting, so we need a suitable BytesRef comparator to do this.
|
CHARSEQUENCE_COMPARATOR| Constructor and Description |
|---|
TSTLookup()
Creates a new TSTLookup with an empty Ternary Search Tree.
|
TSTLookup(Directory tempDir,
java.lang.String tempFileNamePrefix)
Creates a new TSTLookup, for building.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
add(java.lang.CharSequence key,
java.lang.Object value)
Adds a new node if
key already exists,
otherwise replaces its value. |
void |
build(InputIterator iterator)
Builds up a new internal
Lookup representation based on the given InputIterator. |
private static boolean |
charSeqEquals(java.lang.CharSequence left,
java.lang.CharSequence right) |
java.lang.Object |
get(java.lang.CharSequence key)
Returns the value for the specified key, or null
if the key does not exist.
|
long |
getCount()
Get the number of entries the lookup was built with
|
boolean |
load(DataInput input)
Discard current lookup data and load it from a previously saved copy.
|
java.util.List<Lookup.LookupResult> |
lookup(java.lang.CharSequence key,
java.util.Set<BytesRef> contexts,
boolean onlyMorePopular,
int num)
Look up a key and return possible completion for this key.
|
long |
ramBytesUsed()
Returns byte size of the underlying TST
|
private void |
readRecursively(DataInput in,
TernaryTreeNode node) |
boolean |
store(DataOutput output)
Persist the constructed lookup data to a directory.
|
private void |
writeRecursively(DataOutput out,
TernaryTreeNode node) |
build, load, lookup, lookup, storeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetChildResourcesTernaryTreeNode root
TSTAutocomplete autocomplete
private long count
private final Directory tempDir
private final java.lang.String tempFileNamePrefix
private static final java.util.Comparator<BytesRef> utf8SortedAsUTF16SortOrder
private static final byte LO_KID
private static final byte EQ_KID
private static final byte HI_KID
private static final byte HAS_TOKEN
private static final byte HAS_VALUE
public TSTLookup()
build(InputIterator)public TSTLookup(Directory tempDir, java.lang.String tempFileNamePrefix)
build(InputIterator)public void build(InputIterator iterator) throws java.io.IOException
LookupLookup representation based on the given InputIterator.
The implementation might re-sort the data internally.public boolean add(java.lang.CharSequence key,
java.lang.Object value)
key already exists,
otherwise replaces its value.
This method always returns true.
public java.lang.Object get(java.lang.CharSequence key)
private static boolean charSeqEquals(java.lang.CharSequence left,
java.lang.CharSequence right)
public java.util.List<Lookup.LookupResult> lookup(java.lang.CharSequence key, java.util.Set<BytesRef> contexts, boolean onlyMorePopular, int num)
Lookuplookup in class Lookupkey - lookup key. Depending on the implementation this may be
a prefix, misspelling, or even infix.contexts - contexts to filter the lookup by, or null if all contexts are allowed; if the suggestion contains any of the contexts, it's a matchonlyMorePopular - return only more popular resultsnum - maximum number of results to returnprivate void readRecursively(DataInput in, TernaryTreeNode node) throws java.io.IOException
java.io.IOExceptionprivate void writeRecursively(DataOutput out, TernaryTreeNode node) throws java.io.IOException
java.io.IOExceptionpublic boolean store(DataOutput output) throws java.io.IOException
Lookupstore in class Lookupoutput - DataOutput to write the data to.java.io.IOException - when fatal IO error occurs.public boolean load(DataInput input) throws java.io.IOException
Lookuppublic long ramBytesUsed()