Package org.apache.lucene.codecs.uniformsplit

# 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 Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `mdpLength`
  `protected BytesRef`
  `term`

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TermBytes(int mdpLength, BytesRef term)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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).
  `int`
  `getMdpLength()`
  `int`
  `getSuffixLength()`
  `int`
  `getSuffixOffset()`
  `BytesRef`
  `getTerm()`
  `long`
  `ramBytesUsed()`
  `TermBytes`
  `reset(int mdpLength, BytesRef term)`

  ### 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 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:
      - `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`

  - ### ramBytesUsed

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