--- 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); ```