---
title: Fuzzy Term
description: Finds results that approximately match the query token, allowing for a certain edit distance
canonical: https://docs.paradedb.com/documentation/query-builder/term/fuzzy-term
---

<Note>Highlighting is not supported for `pdb.fuzzy_term`.</Note>
<Note>
  For most use cases, we recommend using the [fuzzy query
  string](/documentation/full-text/fuzzy) syntax instead.
</Note>

`fuzzy_term` finds results that approximately match the query term, allowing for minor typos in the input.

<CodeGroup>
```sql SQL
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.fuzzy_term('shoez')
LIMIT 5;
```

```python Django
from paradedb import FuzzyTerm, ParadeDB

MockItem.objects.filter(
    description=ParadeDB(FuzzyTerm('shoez'))
).values('description', 'rating', 'category')[:5]
```

```ruby Rails
MockItem.search(:description)
        .term("shoez", distance: 2)
        .select(:description, :rating, :category)
        .limit(5)
```

</CodeGroup>

<div className="mt-8" />

<ParamField body="value" required>
  Defines the term you are searching for within the specified field, using fuzzy
  logic based on Levenshtein distance to find similar terms.
</ParamField>
<ParamField body="distance" default={2}>
  The maximum Levenshtein distance (i.e. single character edits) allowed to
  consider a term in the index as a match for the query term. Maximum value is
  `2`.
</ParamField>
<ParamField body="transposition_cost_one" default={true}>
  When set to `true`, transpositions (swapping two adjacent characters) as a
  single edit in the Levenshtein distance calculation, while `false` considers
  it two separate edits (a deletion and an insertion).
</ParamField>
<ParamField body="prefix" default={false}>
  When set to `true`, the initial substring (prefix) of the query term is
  exempted from the fuzzy edit distance calculation, while false includes the
  entire string in the calculation.
</ParamField>
