# QSTR

The QSTR function performs a query string query and returns true if the provided query string matches the row.

## Syntax

`QSTR(query, options, max_determinized_states, fuzziness, auto_generate_synonyms_phrase_query, phrase_slop, default_field, allow_leading_wildcard, minimum_should_match, fuzzy_transpositions, fuzzy_prefix_length, time_zone, lenient, rewrite, default_operator, analyzer, fuzzy_max_expansions, quote_analyzer, allow_wildcard, boost, quote_field_suffix, enable_position_increments, fields)`

### Parameters

#### query

Query string in Lucene query string format.

#### options

Optional. Additional options for Query String as function named parameters. See query string query for more information.

#### max_determinized_states

(integer) Maximum number of automaton states required for the query. Default is 10000.

#### fuzziness

(keyword) Maximum edit distance allowed for matching.

#### auto_generate_synonyms_phrase_query

(boolean) If true, match phrase queries are automatically created for multi-term synonyms. Defaults to true.

#### phrase_slop

(integer) Maximum number of positions allowed between matching tokens for phrases. Defaults to 0 (which means exact matches are required).

#### default_field

(keyword) Default field to search if no field is provided in the query string. Supports wildcards (*).

#### allow_leading_wildcard

(boolean) If true, the wildcard characters * and ? are allowed as the first character of the query string. Defaults to true.

#### minimum_should_match

(string) Minimum number of clauses that must match for a document to be returned.

#### fuzzy_transpositions

(boolean) If true, edits for fuzzy matching include transpositions of two adjacent characters (ab → ba). Defaults to true.

#### fuzzy_prefix_length

(integer) Number of beginning characters left unchanged for fuzzy matching. Defaults to 0.

#### time_zone

(keyword) Coordinated Universal Time (UTC) offset or IANA time zone used to convert date values in the query string to UTC.

#### lenient

(boolean) If false, format-based errors, such as providing a text query value for a numeric field, are returned. Defaults to false.

#### rewrite

(keyword) Method used to rewrite the query.

#### default_operator

(keyword) Default boolean logic used to interpret text in the query string if no operators are specified.

#### analyzer

(keyword) Analyzer used to convert the text in the query value into token. Defaults to the index-time analyzer mapped for the default_field.

#### fuzzy_max_expansions

(integer) Maximum number of terms to which the query expands for fuzzy matching. Defaults to 50.

#### quote_analyzer

(keyword) Analyzer used to convert quoted text in the query string into tokens. Defaults to the search_quote_analyzer mapped for the default_field.

#### allow_wildcard

(boolean) If true, the query attempts to analyze wildcard terms in the query string. Defaults to false.

#### boost

(float) Floating point number used to decrease or increase the relevance scores of the query.

#### quote_field_suffix

(keyword) Suffix appended to quoted text in the query string.

#### enable_position_increments

(boolean) If true, enable position increments in queries constructed from a query_string search. Defaults to true.

#### fields

(keyword) Array of fields to search. Supports wildcards (*).

## Examples

Filters the books dataset to only include rows where the author field matches "Faulkner".

```esql
FROM books
| WHERE QSTR("author: Faulkner")
```

Filters the books dataset to include rows where the title is similar to "Hobbjt", allowing up to 2 character changes for fuzzy matching.

```esql
FROM books
| WHERE QSTR("title: Hobbjt~", {"fuzziness": 2})
```

This example filters rows where any field contains the term "Great" and limits the output to 10 rows.

```esql
FROM books
| WHERE QSTR("""Great""")
| LIMIT 10

```
