Class TSTLookup

    • Field Detail

      • count

        private long count
        Number of entries the lookup was built with
      • tempFileNamePrefix

        private final java.lang.String tempFileNamePrefix
      • utf8SortedAsUTF16SortOrder

        private static final java.util.Comparator<BytesRef> utf8SortedAsUTF16SortOrder
        TST uses UTF-16 sorting, so we need a suitable BytesRef comparator to do this.
    • Constructor Detail

      • TSTLookup

        public TSTLookup()
        Creates a new TSTLookup with an empty Ternary Search Tree.
        See Also:
        build(InputIterator)
      • TSTLookup

        public TSTLookup​(Directory tempDir,
                         java.lang.String tempFileNamePrefix)
        Creates a new TSTLookup, for building.
        See Also:
        build(InputIterator)
    • Method Detail

      • build

        public void build​(InputIterator iterator)
                   throws java.io.IOException
        Description copied from class: Lookup
        Builds up a new internal Lookup representation based on the given InputIterator. The implementation might re-sort the data internally.
        Specified by:
        build in class Lookup
        Throws:
        java.io.IOException
      • add

        public boolean add​(java.lang.CharSequence key,
                           java.lang.Object value)
        Adds a new node if key already exists, otherwise replaces its value.

        This method always returns true.

      • get

        public java.lang.Object get​(java.lang.CharSequence key)
        Returns the value for the specified key, or null if the key does not exist.
      • charSeqEquals

        private static boolean charSeqEquals​(java.lang.CharSequence left,
                                             java.lang.CharSequence right)
      • lookup

        public java.util.List<Lookup.LookupResult> lookup​(java.lang.CharSequence key,
                                                          java.util.Set<BytesRef> contexts,
                                                          boolean onlyMorePopular,
                                                          int num)
        Description copied from class: Lookup
        Look up a key and return possible completion for this key.
        Specified by:
        lookup in class Lookup
        Parameters:
        key - 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 match
        onlyMorePopular - return only more popular results
        num - maximum number of results to return
        Returns:
        a list of possible completions, with their relative weight (e.g. popularity)
      • readRecursively

        private void readRecursively​(DataInput in,
                                     TernaryTreeNode node)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • writeRecursively

        private void writeRecursively​(DataOutput out,
                                      TernaryTreeNode node)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • store

        public boolean store​(DataOutput output)
                      throws java.io.IOException
        Description copied from class: Lookup
        Persist the constructed lookup data to a directory. Optional operation.
        Specified by:
        store in class Lookup
        Parameters:
        output - DataOutput to write the data to.
        Returns:
        true if successful, false if unsuccessful or not supported.
        Throws:
        java.io.IOException - when fatal IO error occurs.
      • load

        public boolean load​(DataInput input)
                     throws java.io.IOException
        Description copied from class: Lookup
        Discard current lookup data and load it from a previously saved copy. Optional operation.
        Specified by:
        load in class Lookup
        Parameters:
        input - the DataInput to load the lookup data.
        Returns:
        true if completed successfully, false if unsuccessful or not supported.
        Throws:
        java.io.IOException - when fatal IO error occurs.
      • ramBytesUsed

        public long ramBytesUsed()
        Returns byte size of the underlying TST
      • getCount

        public long getCount()
        Description copied from class: Lookup
        Get the number of entries the lookup was built with
        Specified by:
        getCount in class Lookup
        Returns:
        total number of suggester entries