Fuzzy Query

The Fuzzy Query generates matching terms that are within the maximum edit distance specified in _fuzziness (defaults to 2) and then checks the term dictionary to find out which of those generated terms actually exist in the index. The final query uses up to _max_expansions (defaults to 50) matching terms.

Example

SEARCH /bank/
{
  "_query": {
    "favoriteFruit": {
      "_fuzzy": "banna"
    }
  }
}

A similar effect could be obtained by using the tilde (“~”) character followed optionally by the edit distance as part of the query text:

SEARCH /bank/
{
  "_query": {
    "favoriteFruit": "banna~"
  }
}

Edit distance defaults to 2, so "banna~" and "banna~2" are equivalent.

Parameters

Unimplemented Feature!
QueryDSL parameters are not implemented yet.
Pull requests are welcome!

The following parameters are accepted by Boolean fields:

_fuzziness The maximum edit distance. Defaults to 2.
_max_expansions The maximum number of terms that the fuzzy query will expand to. Defaults to 50.
_prefix_length The number of initial characters which will not be “fuzzified”. This helps to reduce the number of terms which must be examined. Defaults to 0.

Warning
This query can be very heavy if _prefix_length is set to 0 and if _max_expansions is set to a high number. It could result in every term in the index being examined!