Class TermBytes

java.lang.Object
org.apache.lucene.codecs.uniformsplit.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 Details

    • mdpLength

      protected int mdpLength
    • term

      protected BytesRef term
  • Constructor Details

    • TermBytes

      public TermBytes(int mdpLength, BytesRef term)
  • Method Details

    • reset

      public TermBytes reset(int mdpLength, BytesRef term)
    • getMdpLength

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

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

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

      public int getSuffixLength()
      Returns:
      The length of this term incremental encoding suffix.
      See Also:
    • 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:
    • ramBytesUsed

      public long ramBytesUsed()
      Specified by:
      ramBytesUsed in interface Accountable