Highlighting is not supported for pdb.match if distance is greater than zero.
Under the hood, the 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.
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match('running shoes');
value
required
The query to match against. This query is automatically tokenized in the same way as the field on the left-hand side of @@@.
tokenizer
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.
distance
default:0
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.
transposition_cost_one
default:true
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).
prefix
default:false
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.
conjunction_mode
default:false
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 can be passed to tokenizer to control how the query string is tokenized.
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.
SELECT paradedb.tokenizer('whitespace');

Fuzzy Matching

When distance is set to a positive integer, fuzzy matching is applied. This allows match to tolerate typos in the query string.
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.
Function Syntax
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.match('running shoes', conjunction_mode => true);