Basic Usage

Boolean queries filter documents based on the logical relationships defined by their subqueries, considering:

  • Documents that satisfy all must conditions.
  • Documents that satisfy none of the must_not conditions.
  • Documents that satisfy at least one condition from either must or should.

Boolean queries are a powerful way to combine the results of several different queries.

SELECT description, rating, category
FROM mock_items
WHERE id @@@ paradedb.boolean(
    should => ARRAY[
      paradedb.term('description', 'headphones')
    ],
    must => ARRAY[
      paradedb.term('category', 'electronics'),
      paradedb.fuzzy_term('description', 'bluetooht')
    ],
    must_not => ARRAY[
      paradedb.range('rating', int4range(NULL, 2, '()'))
    ]
);
must

A query object or an ARRAY of query objects as conditions which must be matched.

must_not

A query object or an ARRAY of query objects as conditions which must not be matched.

should

A query object or an ARRAY of query objects as conditions of which at least one must be matched.

In order for a boolean query to return a result, one of must or should must be provided. must_not acts as a mask and does not produce a result set.