numericFilters
'numericFilters' => [ 'numeric_attribute = | != | > | >= | < | <= numeric_value', 'attribute:lower_value TO higher_value', ... ]
Can be used in these methods:
search,
browseObjects,
deleteBy,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
search,
browse,
delete_by,
search_for_facet_values,
generate_secured_api_key,
add_api_key,
update_api_key
search,
browse,
deleteBy,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
search,
browse_objects,
delete_by,
search_for_facet_values,
generate_secured_api_key,
add_api_key,
update_api_key
search,
browse,
deleteBy,
searchForFacetValues
search,
browseObjects,
deleteObjectBy,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
searchAsync,
browseAsync,
deleteByAsync,
searchForFacetValues
Search,
Browse,
DeleteBy,
SearchForFacetValues,
GenerateSecuredApiKey,
AddApiKey,
UpdateApiKey
Search,
browse,
deleteBy,
searchForFacetValues,
generateSecuredApiKey,
addApiKey,
updateApiKey
Search,
BrowseObjects,
DeleteBy,
SearchForFacetValues,
GenerateSecuredAPIKey,
AddAPIKey,
UpdateAPIKey
search,
browse index,
delete by,
search into facet values,
generateSecuredApiKey,
add key,
update key
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 = 1
.
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 = 1",
"deliveryDate < 1441755506"
],
"price < 1000"
]
]);
[["inStock = 1", "deliveryDate < 1441755506"], "price < 1000"]
translates as(inStock = 1 OR deliveryDate < 1441755506) AND price < 1000