Skip to content

Regexp Query

A regexp query returns documents that contain terms matching a specified regular expression. The regular expression can include additional options for controlling the match behavior.

Example

import (
    es "github.com/elastic/go-elasticsearch/v8"
    "github.com/sdqri/effdsl/v2"
    rq "github.com/sdqri/effdsl/queries/regexpquery"
)

query, err := effdsl.Define(
    effdsl.WithQuery(
        rq.RegexpQuery(
            "user.id",
            "k.*y",
            rq.WithFlags("ALL"),
            rq.WithCaseInsensitive(),
            rq.WithMaxDeterminizedStates(10000),
            rq.WithRQRewrite(rq.ConstantScore),
        ),
    ),
)

res, err := es.Search(
    es.Search.WithBody(strings.NewReader(query)),
)

Parameters

  • Field (string)
    (Required, positional) The field you wish to search. This is a required parameter.

  • Value (string)
    (Required, positional) The regular expression pattern to match against the field. This is a required parameter.

  • WithFlags (string)
    (Optional, Functional option) Additional matching options for the regular expression.

  • WithCaseInsensitive (bool)
    (Optional, Functional option) If true, the regular expression is case-insensitive.

  • WithMaxDeterminizedStates (int)
    (Optional, Functional option) The maximum number of automaton states required for the query. Lower values will reduce memory usage but increase query time.

  • WithRewrite (Rewrite)
    (Optional, Functional option) The method used to rewrite the query. Valid values are:

    • constant_score: Query is rewritten to a constant score query.
    • scoring_boolean: Query is rewritten to a scoring boolean query.
    • constant_score_boolean: Query is rewritten to a constant score boolean query.
    • top_terms_N: Query is rewritten to match the top N scoring terms.
    • top_terms_boost_N: Query is rewritten to match the top N scoring terms with boosting.
    • top_terms_blended_freqs_N: Query is rewritten to match the top N scoring terms with blended frequencies.

Additional Information

For more details on the regexp query and its parameters, refer to the official Elasticsearch documentation on regexp queries.