API Reference / API Parameters / numericFilters
Jan. 14, 2019

numericFilters

Type: list of strings
Engine default: []
Parameter syntax
'numericFilters' => [
  'numeric_attribute = | != | > | >= | < | <= numeric_value',
  'attribute:lower_value TO higher_value',
  ...
]

Can be used in these methods:

About this parameter

Filter on numeric attributes.

The filters parameter provides an easier to use, SQL-like syntax. We recommend using it instead of this setting.

Numeric Comparisons

Format: ${attributeName} ${operator} ${operand}
Example: inStock > 0.

Supported operators are <, <=, =, !=, >= and >, with the same semantics as in virtually all programming languages.


Numeric Range

Format: ${attributeName}:${lowerBound} TO ${upperBound}
Example: price:5.99 TO 100

${lowerBound} and ${upperBound} must be numeric. Both are inclusive.


Usage notes:

  • No boolean operators: You cannot use boolean operators like AND and OR.

  • Multiple filters: If you specify multiple filters, they are interpreted as a conjunction (AND). If you want to use a disjunction (OR), use a nested array.

Examples

Apply numeric filters filters on a search query

1
2
3
4
5
6
7
8
9
$results = $index->search('query', [
  'numericFilters' => [
    [
      "inStock > 0",
      "deliveryDate < 1441755506"
    ],
    "price < 1000"
  ]
]);
  • [["inStock > 0", "deliveryDate < 1441755506"], "price < 1000"] translates as (inStock > 0 OR deliveryDate < 1441755506) AND price < 1000

Did you find this page helpful?