12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- [[query-dsl-regexp-query]]
- === Regexp query
- ++++
- <titleabbrev>Regexp</titleabbrev>
- ++++
- Returns documents that contain terms matching a
- https://en.wikipedia.org/wiki/Regular_expression[regular expression].
- A regular expression is a way to match patterns in data using placeholder
- characters, called operators. For a list of operators supported by the
- `regexp` query, see <<regexp-syntax, Regular expression syntax>>.
- [[regexp-query-ex-request]]
- ==== Example request
- The following search returns documents where the `user.id` field contains any term
- that begins with `k` and ends with `y`. The `.*` operators match any
- characters of any length, including no characters. Matching
- terms can include `ky`, `kay`, and `kimchy`.
- [source,console]
- ----
- GET /_search
- {
- "query": {
- "regexp": {
- "user.id": {
- "value": "k.*y",
- "flags": "ALL",
- "max_determinized_states": 10000,
- "rewrite": "constant_score"
- }
- }
- }
- }
- ----
- [[regexp-top-level-params]]
- ==== Top-level parameters for `regexp`
- `<field>`::
- (Required, object) Field you wish to search.
- [[regexp-query-field-params]]
- ==== Parameters for `<field>`
- `value`::
- (Required, string) Regular expression for terms you wish to find in the provided
- `<field>`. For a list of supported operators, see <<regexp-syntax, Regular
- expression syntax>>.
- +
- --
- By default, regular expressions are limited to 1,000 characters. You can change
- this limit using the <<index-max-regex-length, `index.max_regex_length`>>
- setting.
- [WARNING]
- =====
- The performance of the `regexp` query can vary based on the regular expression
- provided. To improve performance, avoid using wildcard patterns, such as `.*` or
- `.*?+`, without a prefix or suffix.
- =====
- --
- `flags`::
- (Optional, string) Enables optional operators for the regular expression. For
- valid values and more information, see <<regexp-optional-operators, Regular
- expression syntax>>.
- `max_determinized_states`::
- +
- --
- (Optional, integer) Maximum number of
- https://en.wikipedia.org/wiki/Deterministic_finite_automaton[automaton states]
- required for the query. Default is `10000`.
- {es} uses https://lucene.apache.org/core/[Apache Lucene] internally to parse
- regular expressions. Lucene converts each regular expression to a finite
- automaton containing a number of determinized states.
- You can use this parameter to prevent that conversion from unintentionally
- consuming too many resources. You may need to increase this limit to run complex
- regular expressions.
- --
- `rewrite`::
- (Optional, string) Method used to rewrite the query. For valid values and more
- information, see the <<query-dsl-multi-term-rewrite, `rewrite` parameter>>.
- [[regexp-query-notes]]
- ==== Notes
- ===== Allow expensive queries
- Regexp queries will not be executed if <<query-dsl-allow-expensive-queries, `search.allow_expensive_queries`>>
- is set to false.
|