PrefixQuery (Lucene 10.5.0 core API)
Description: declaration: package: org.apache.lucene.search, class: PrefixQuery

Package org.apache.lucene.search

# Class PrefixQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.MultiTermQuery
org.apache.lucene.search.AutomatonQuery
org.apache.lucene.search.PrefixQuery

All Implemented Interfaces:
  `Accountable`

public class PrefixQuery extends AutomatonQuery
A Query that matches documents containing terms with a specified prefix. A PrefixQuery is built by QueryParser for input like `app*`.

This query uses the `MultiTermQuery.CONSTANT_SCORE_BLENDED_REWRITE` rewrite method.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.lucene.search.MultiTermQuery

  `MultiTermQuery.RewriteMethod, MultiTermQuery.TopTermsBlendedFreqScoringRewrite, MultiTermQuery.TopTermsBoostOnlyBooleanQueryRewrite, MultiTermQuery.TopTermsScoringBooleanQueryRewrite`

- ## Field Summary

  ### Fields inherited from class org.apache.lucene.search.AutomatonQuery

  `automaton, automatonIsBinary, compiled, term`

  ### Fields inherited from class org.apache.lucene.search.MultiTermQuery

  `CONSTANT_SCORE_BLENDED_REWRITE, CONSTANT_SCORE_BOOLEAN_REWRITE, CONSTANT_SCORE_REWRITE, DOC_VALUES_REWRITE, field, rewriteMethod, SCORING_BOOLEAN_REWRITE`

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

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PrefixQuery(Term prefix)`
  Constructs a query for terms starting with `prefix`.
  `PrefixQuery(Term prefix, MultiTermQuery.RewriteMethod rewriteMethod)`
  Constructs a query for terms starting with `prefix` using a defined RewriteMethod

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Override and implement query instance equivalence properly in a subclass.
  `Term`
  `getPrefix()`
  Returns the prefix of this query.
  `int`
  `hashCode()`
  Override and implement query hash code properly in a subclass.
  `static Automaton`
  `toAutomaton(BytesRef prefix)`
  Build an automaton accepting all terms with the specified prefix.
  `String`
  `toString(String field)`
  Prints a user-readable version of this query.

  ### Methods inherited from class org.apache.lucene.search.AutomatonQuery

  `getAutomaton, getCompiled, getTermsEnum, isAutomatonBinary, ramBytesUsed, visit`

  ### Methods inherited from class org.apache.lucene.search.MultiTermQuery

  `getField, getRewriteMethod, getTermsCount, getTermsEnum, rewrite`

  ### Methods inherited from class org.apache.lucene.search.Query

  `classHash, createWeight, sameClassAs, toString`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

  `getChildResources`

- ## Constructor Details

  - ### PrefixQuery

    public PrefixQuery(Term prefix)
    Constructs a query for terms starting with `prefix`.

  - ### PrefixQuery

    public PrefixQuery(Term prefix, MultiTermQuery.RewriteMethod rewriteMethod)
    Constructs a query for terms starting with `prefix` using a defined RewriteMethod

- ## Method Details

  - ### toAutomaton

    public static Automaton toAutomaton(BytesRef prefix)
    Build an automaton accepting all terms with the specified prefix.

  - ### getPrefix

    public Term getPrefix()
    Returns the prefix of this query.

  - ### toString

    public String toString(String field)
    Prints a user-readable version of this query.
    Overrides:
      `toString` in class `AutomatonQuery`

  - ### hashCode

    public int hashCode()
    Description copied from class: `Query`
    Override and implement query hash code properly in a subclass. This is required so that `QueryCache` works properly.
    Overrides:
      `hashCode` in class `AutomatonQuery`
    See Also:
      - `Query.equals(Object)`

  - ### equals

    public boolean equals(Object obj)
    Description copied from class: `Query`
    Override and implement query instance equivalence properly in a subclass. This is required so that `QueryCache` works properly.

    Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical to those of the other instance. Utility methods are provided for certain repetitive code.

    Overrides:
      `equals` in class `AutomatonQuery`
    See Also:
      - `Query.sameClassAs(Object)`
      - `Query.classHash()`