IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Fuzzy query
editFuzzy query
editReturns documents that contain terms similar to the search term, as measured by a Levenshtein edit distance.
An edit distance is the number of one-character changes needed to turn one term into another. These changes can include:
- Changing a character (box → fox)
- Removing a character (black → lack)
- Inserting a character (sic → sick)
- Transposing two adjacent characters (act → cat)
To find similar terms, the fuzzy
query creates a set of all possible
variations, or expansions, of the search term within a specified edit distance.
The query then returns exact matches for each expansion.
Example requests
editSimple example
editGET /_search { "query": { "fuzzy": { "user": { "value": "ki" } } } }
Example using advanced parameters
editGET /_search { "query": { "fuzzy": { "user": { "value": "ki", "fuzziness": "AUTO", "max_expansions": 50, "prefix_length": 0, "transpositions": true, "rewrite": "constant_score" } } } }
Top-level parameters for fuzzy
edit-
<field>
- (Required, object) Field you wish to search.
Parameters for <field>
edit-
value
-
(Required, string) Term you wish to find in the provided
<field>
. -
fuzziness
- (Optional, string) Maximum edit distance allowed for matching. See Fuzziness for valid values and more information.
-
max_expansions
-
(Optional, integer) Maximum number of variations created. Defaults to
50
.Avoid using a high value in the
max_expansions
parameter, especially if theprefix_length
parameter value is0
. High values in themax_expansions
parameter can cause poor performance due to the high number of variations examined. -
prefix_length
-
(Optional, integer) Number of beginning characters left unchanged when creating
expansions. Defaults to
0
. -
transpositions
-
(Optional, boolean) Indicates whether edits include transpositions of two
adjacent characters (ab → ba). Defaults to
true
. -
rewrite
-
(Optional, string) Method used to rewrite the query. For valid values and more
information, see the
rewrite
parameter.