Class TermBytes

  • All Implemented Interfaces:
    Accountable

    public class TermBytes
    extends Object
    implements Accountable
    Term of a block line.

    Contains the term bytes and the minimal distinguishing prefix (MDP) length of this term.

    The MDP is the minimal prefix that distinguishes a term from its immediate previous term (terms are alphabetically sorted).

    The incremental encoding suffix is the suffix starting at the last byte of the MDP (inclusive).

    Example: For the block

     client
     color
     company
     companies
     
    "color" - MDP is "co" - incremental encoding suffix is "olor".
    "company" - MDP is "com" - incremental encoding suffix is "mpany".
    "companies" - MDP is "compani" - incremental encoding suffix is "ies".
    WARNING: This API is experimental and might change in incompatible ways in the next release.
    • Field Detail

      • mdpLength

        protected int mdpLength
    • Constructor Detail

      • TermBytes

        public TermBytes​(int mdpLength,
                         BytesRef term)
    • Method Detail

      • getMdpLength

        public int getMdpLength()
        Returns:
        This term MDP length.
        See Also:
        TermBytes
      • getTerm

        public BytesRef getTerm()
        Returns:
        This term bytes.
      • getSuffixOffset

        public int getSuffixOffset()
        Returns:
        The offset of this term incremental encoding suffix.
        See Also:
        TermBytes
      • getSuffixLength

        public int getSuffixLength()
        Returns:
        The length of this term incremental encoding suffix.
        See Also:
        TermBytes
      • computeMdpLength

        public static int computeMdpLength​(BytesRef previousTerm,
                                           BytesRef currentTerm)
        Computes the length of the minimal distinguishing prefix (MDP) between a current term and its previous term (terms are alphabetically sorted).

        Example: If previous="car" and current="cartridge", then MDP length is 4. It is the length of the minimal prefix distinguishing "cartridge" from "car", that is, the length of "cart".

        See Also:
        TermBytes