org.apache.lucene.search

## Class RegexpQuery

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

-     public class RegexpQuery
      extends AutomatonQuery

  A fast regular expression query based on the `org.apache.lucene.util.automaton` package.
  - Comparisons are fast
  - The term dictionary is enumerated in an intelligent way, to avoid comparisons. See `AutomatonQuery` for more details.

  The supported syntax is documented in the `RegExp` class. Note this might be different than other regular expression implementations. For some alternatives with different syntax, look under the sandbox.

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

  See Also:
    `RegExp`
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### 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_BOOLEAN_REWRITE, CONSTANT_SCORE_REWRITE, field, rewriteMethod, SCORING_BOOLEAN_REWRITE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RegexpQuery(Term term)` Constructs a query for terms matching `term`.
    `RegexpQuery(Term term, int flags)` Constructs a query for terms matching `term`.
    `RegexpQuery(Term term, int flags, AutomatonProvider provider, int maxDeterminizedStates)` Constructs a query for terms matching `term`.
    `RegexpQuery(Term term, int flags, int maxDeterminizedStates)` Constructs a query for terms matching `term`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Term` | `getRegexp()` Returns the regexp of this query wrapped in a Term.
    `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`

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

      `getField, getRewriteMethod, getTermsEnum, rewrite, setRewriteMethod`

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

- - ### Constructor Detail

    - #### RegexpQuery

          public RegexpQuery(Term term)

      Constructs a query for terms matching `term`.

      By default, all regular expression features are enabled.

      Parameters:
        `term` - regular expression.

    - #### RegexpQuery

          public RegexpQuery(Term term,
                             int flags)

      Constructs a query for terms matching `term`.
      Parameters:
        `term` - regular expression.
        `flags` - optional RegExp features from `RegExp`

    - #### RegexpQuery

          public RegexpQuery(Term term,
                             int flags,
                             int maxDeterminizedStates)

      Constructs a query for terms matching `term`.
      Parameters:
        `term` - regular expression.
        `flags` - optional RegExp features from `RegExp`
        `maxDeterminizedStates` - maximum number of states that compiling the automaton for the regexp can result in. Set higher to allow more complex queries and lower to prevent memory exhaustion.

    - #### RegexpQuery

          public RegexpQuery(Term term,
                             int flags,
                             AutomatonProvider provider,
                             int maxDeterminizedStates)

      Constructs a query for terms matching `term`.
      Parameters:
        `term` - regular expression.
        `flags` - optional RegExp features from `RegExp`
        `provider` - custom AutomatonProvider for named automata
        `maxDeterminizedStates` - maximum number of states that compiling the automaton for the regexp can result in. Set higher to allow more complex queries and lower to prevent memory exhaustion.

  - ### Method Detail

    - #### getRegexp

          public Term getRegexp()

      Returns the regexp of this query wrapped in a Term.

    - #### toString

          public String toString(String field)

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

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.