Guides / Managing results / Refine results / Filtering

Filters and boolean operators

Algolia supports the following operators, which must be in capital letters:

  • OR: must match any of the combined conditions (disjunction)
  • AND: must match all the combined conditions (conjunction)
  • NOT: negates a filter

You can also use parentheses ( and ) for grouping.

For example, if you would like your retrieved products to be either books or ebooks, not written by JK Rowling, your query would look like this:

3'', {
  filters: '(category:Book OR category:Ebook) AND NOT author:"JK Rowling"'

Negate combined filters

You can’t negate a group of filters, only an individual filter. For example, NOT(filter1 OR filter2) isn’t allowed.

Combine ANDs and ORs

While you may use as many ANDs and ORs as you need, be careful about how you combine them.

For performance reasons, you can’t put groups of ANDs within ORs. For example:

Combination Allowed?
x AND (y OR z) AND (a OR b) Yes
x AND y OR z AND a OR b Yes
x OR ( y AND z) OR ( a AND b) No
(a AND b) OR (c AND d) No

Your filter might fail if it reduces to an unsupported form. For example:

Original Reduced (disallowed) form
((a OR b) AND NOT c) AND NOT d (a AND NOT c AND NOT d) OR (b AND NOT c AND NOT d)

Use the filter syntax validator to help you verify and build filter statements.

Missing parentheses

To avoid confusion, use parentheses around logical statements.

If you omit them, Algolia automatically put the ORs inside parenthesis:

Original Algolia’s interpretation
x AND y OR z AND a OR b x AND (y OR z) AND (a OR b)
x OR y AND z OR a AND b (x OR y) AND (z OR a) AND b

Mixed filter types in OR conditions

You can’t compare different filter types (string, numeric, tags) with an OR. For example, num=3 OR tag1 OR facet:value isn’t allowed.

Filters syntax validator

Type your filter to validate it:


Did you find this page helpful?