---
title: Match
---
Highlighting is not supported for `pdb.match` if `distance` is greater than
zero.
Under the hood, the [match](/v2/full-text/match) conjunction and disjunction operators get rewritten to this query builder function.
This function exposes a few advanced configuration options like the ability to use a custom tokenizer.
```sql
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match('running shoes');
```
The query to match against. This query is automatically tokenized in the same
way as the field on the left-hand side of `@@@`.
By default, the query string is tokenized in the same way as the field was at
index time. This can be configured by setting a [custom
tokenizer](#custom-tokenizer).
If greater than zero, fuzzy matching is applied. Configures 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`.
When set to `true` and fuzzy matching is enabled, 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).
When set to `true` and fuzzy matching is enabled, 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.
When set to `true`, **all** tokens of the query have to match in order for a
document to be considered a match. For instance, the query `running shoes` is
by default executed as `running OR shoes`, but setting `conjunction_mode` to
`true` executes it as `running AND shoes`.
## Custom Tokenizer
[`paradedb.tokenizer`](/documentation/indexing/tokenizers#tokenizing-a-query) can be passed to `tokenizer` to control how the query string is tokenized.
```sql Function Syntax
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match(
'running shoes',
tokenizer => paradedb.tokenizer('whitespace')
);
```
For JSON syntax, `paradedb.tokenizer` prints the configuration object to pass into `tokenizer`.
```sql
SELECT paradedb.tokenizer('whitespace');
```
```csv
tokenizer
---------------------------------------------------------------
{"type": "whitespace", "lowercase": true, "remove_long": 255}
(1 row)
```
## Fuzzy Matching
When `distance` is set to a positive integer, fuzzy matching is applied. This allows `match` to tolerate typos in the query string.
```sql
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match('ruining shoez', distance => 2);
```
## Conjunction Mode
By default, `match` constructs an `OR` boolean query from the query string's tokens. For instance, the query `running shoes` is executed as `running OR shoes`.
When set to `true`, `conjunction_mode` constructs an `AND` boolean query instead.
```sql Function Syntax
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match('running shoes', conjunction_mode => true);
```