Prerequisite Before performing full text search over a table, ensure that it has been indexed and properly tuned.

@@@ is ParadeDB’s full text search operator that means “find all rows matching a full text query.” @@@ accepts two styles of queries:

Query String Syntax

The left-hand side of @@@ is the field to search against, and the right-hand side is a query string. For example, the following query returns all rows where the description field matches the query shoes.

SELECT description, rating, category
FROM mock_items
WHERE description @@@ 'shoes';

Under the hood, the query string is tokenized with the same tokenizer that the field used at index creation time.

This syntax is friendly to ORMs and prepared statements. For consistency, all examples in this section use the query string syntax.

Special Characters

The special characters + , ^, `, :, {, }, ", [, ], (, ), <, >,~, !, \\, \*, and SPACE must be escaped by a \ inside the query term.

Query Builder Syntax

The left-hand side of @@@ is the key field and the right-hand side is a query builder function or JSON object. This syntax is necessary for capturing more complex query types like fuzzy matching or term-level search that cannot be expressed by query strings.

SELECT description, rating, category
FROM mock_items
WHERE id @@@ paradedb.match('description', 'shoes');