Skip to main content
Regex phrase matches a specific sequence of regex queries. Think of it like a conjunction of regex queries, with positions and ordering of tokens enforced. For example, the regex phrase query for ru.* shoes will match running shoes, but will not match shoes running.
SELECT description, rating, category
FROM mock_items
WHERE description @@@ pdb.regex_phrase(ARRAY['ru.*', 'shoes']);
import { search } from "@paradedb/drizzle-paradedb";

await db
  .select({
    description: mockItems.description,
    rating: mockItems.rating,
    category: mockItems.category,
  })
  .from(mockItems)
  .where(search.regexPhrase(mockItems.description, ["ru.*", "shoes"]));
from paradedb import ParadeDB, RegexPhrase

MockItem.objects.filter(
    description=ParadeDB(RegexPhrase('ru.*', 'shoes'))
).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_phrase(MockItem.description, ["ru.*", "shoes"]))
)

with Session(engine) as session:
    session.execute(stmt).all()
MockItem.search(:description)
        .regex_phrase("ru.*", "shoes")
        .select(:description, :rating, :category)
await dbContext
    .MockItems.Where(item =>
        EF.Functions.RegexPhrase(item.Description, new[] { "ru.*", "shoes" })
    )
    .Select(item => new { item.Description, item.Rating, item.Category })
    .ToListAsync();
phrases
required
An ARRAY of expressions that form the search phrase. These expressions must appear in the specified order within the document for a match to occur, although some flexibility is allowed based on the slop parameter. Please see regex for allowed regex constructs.
slop
default:0
A slop of 0 requires the terms to appear exactly as they are in the phrase and adjacent to each other. Higher slop values allow for transpositions and distance between terms.
max_expansions
default:16384
Limits total number of terms that the regex phrase query can expand to. If this number is exceeded, an error will be returned.