Package org.apache.lucene.search

## Class WildcardQuery

- java.lang.Object
- - org.apache.lucene.search.Query
  - - org.apache.lucene.search.MultiTermQuery
    - - org.apache.lucene.search.AutomatonQuery
      - - org.apache.lucene.search.WildcardQuery

- All Implemented Interfaces:
    `Accountable`

      public class WildcardQuery
      extends AutomatonQuery

  Implements the wildcard search query. Supported wildcards are `*`, which matches any character sequence (including the empty one), and `?`, which matches any single character. '\' is the escape character.

  Note this query can be slow, as it needs to iterate over many terms. In order to prevent extremely slow WildcardQueries, a Wildcard term should not start with the wildcard `*`

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

  See Also:
    `AutomatonQuery`

- - ### 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
    Modifier and Type | Field | Description
    --- | --- | ---
    `static char` | `WILDCARD_CHAR` | Char equality with support for wildcards
    `static char` | `WILDCARD_ESCAPE` | Escape character
    `static char` | `WILDCARD_STRING` | String equality with support for wildcards

    - ### 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
    --- | ---
    `WildcardQuery​(Term term)` | Constructs a query for terms matching `term`.
    `WildcardQuery​(Term term, int determinizeWorkLimit)` | Constructs a query for terms matching `term`.
    `WildcardQuery​(Term term, int determinizeWorkLimit, MultiTermQuery.RewriteMethod rewriteMethod)` | Constructs a query for terms matching `term`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Term` | `getTerm()` | Returns the pattern term.
    `static Automaton` | `toAutomaton​(Term wildcardquery)` | Convert Lucene wildcard syntax into an automaton.
    `String` | `toString​(String field)` | Prints a user-readable version of this query.

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

      `equals, getAutomaton, getTermsEnum, hashCode, isAutomatonBinary, ramBytesUsed, visit`

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

      `getField, getRewriteMethod, getTermsCount, getTermsEnum, rewrite, setRewriteMethod`

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

      `classHash, createWeight, rewrite, 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`

- - ### Field Detail

    - #### WILDCARD_STRING

          public static final char WILDCARD_STRING

      String equality with support for wildcards
      See Also:
        Constant Field Values

    - #### WILDCARD_CHAR

          public static final char WILDCARD_CHAR

      Char equality with support for wildcards
      See Also:
        Constant Field Values

    - #### WILDCARD_ESCAPE

          public static final char WILDCARD_ESCAPE

      Escape character
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### WildcardQuery

          public WildcardQuery​(Term term)

      Constructs a query for terms matching `term`.

    - #### WildcardQuery

          public WildcardQuery​(Term term,
                               int determinizeWorkLimit)

      Constructs a query for terms matching `term`.
      Parameters:
        `determinizeWorkLimit` - maximum effort to spend while compiling the automaton from this wildcard. Set higher to allow more complex queries and lower to prevent memory exhaustion. Use `Operations.DEFAULT_DETERMINIZE_WORK_LIMIT` as a decent default if you don't otherwise know what to specify.

    - #### WildcardQuery

          public WildcardQuery​(Term term,
                               int determinizeWorkLimit,
                               MultiTermQuery.RewriteMethod rewriteMethod)

      Constructs a query for terms matching `term`.
      Parameters:
        `determinizeWorkLimit` - maximum effort to spend while compiling the automaton from this wildcard. Set higher to allow more complex queries and lower to prevent memory exhaustion. Use `Operations.DEFAULT_DETERMINIZE_WORK_LIMIT` as a decent default if you don't otherwise know what to specify.
        `rewriteMethod` - the rewrite method to use when building the final query

  - ### Method Detail

    - #### toAutomaton

          public static Automaton toAutomaton​(Term wildcardquery)

      Convert Lucene wildcard syntax into an automaton.
      NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

    - #### getTerm

          public Term getTerm()

      Returns the pattern term.

    - #### toString

          public String toString​(String field)

      Prints a user-readable version of this query.
      Overrides:
        `toString` in class `AutomatonQuery`