Skip to main content
In addition to basic match, phrase, and term queries, additional advanced query types are exposed as query builder functions. Query builder functions use the @@@ operator. @@@ takes a column on the left-hand side and a query builder function on the right-hand side. It means “find all rows where the column matches the given query.” For example:
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.regex('key.*rd');
import { search } from "@paradedb/drizzle-paradedb";

await db
  .select({
    description: mockItems.description,
    rating: mockItems.rating,
    category: mockItems.category,
  })
  .from(mockItems)
  .where(search.regex(mockItems.description, "key.*rd"));
from paradedb import ParadeDB, Regex

MockItem.objects.filter(
    description=ParadeDB(Regex('key.*rd'))
).values('description', 'rating', 'category')
from sqlalchemy import select
from sqlalchemy.orm import Session
from paradedb.sqlalchemy import search

stmt = (
    select(MockItem.description, MockItem.rating, MockItem.category)
    .where(search.regex(MockItem.description, "key.*rd"))
)

with Session(engine) as session:
    session.execute(stmt).all()
MockItem.search(:description)
        .regex("key.*rd")
        .select(:description, :rating, :category)
await dbContext
    .MockItems.Where(item => EF.Functions.Regex(item.Description, "key.*rd"))
    .Select(item => new { item.Description, item.Rating, item.Category })
    .ToListAsync();
Expected Response
       description        | rating |  category
--------------------------+--------+-------------
 Ergonomic metal keyboard |      4 | Electronics
 Plastic Keyboard         |      4 | Electronics
(2 rows)
This uses the regex builder function to match all rows where description matches the regex expression key.*rd.