ranking
Can be used in these methods:
setSettings
set_settings
setSettings
set_settings
setSettings
setSettings
SetSettings
setSettings
SetSettings
setSettings
About this parameter
Controls how Algolia should sort your results.
You must specify a list of ranking criteria. The tie-breaking algorithm applies each criterion sequentially in the order they’re specified.
Ranking Criteria:
-
typo: Sort by increasing number of typos.
-
geo: Sort by decreasing geo distance when performing a geo search. This criterion is ignored when not performing a geo search.
-
words: Sort by decreasing number of matched query words. This parameter is useful when you use the
optionalWords
query parameter to rank hits with the most matched words first. -
filters: The filter criteria is the sum of scores for filters matched by one hit. In case of OR filters, only one score is taken in account even if the two filters match. This parameter must be present in the ranking if you want to use
optionalFilters
. -
proximity: Sort by increasing proximity of query words in hits.
-
attribute: Sort according to the order of attributes defined by
searchableAttributes
. -
exact:
- If the query contains only one word: The behavior depends on the value of
exactOnSingleWordQuery
. - If the query contains multiple words: Sort by decreasing number of words that matched exactly.
- If the query contains only one word: The behavior depends on the value of
-
custom:
- Sort according to a user-defined formula specified via the
customRanking
setting. - If
custom
isn’t mentioned, yourcustomRanking
won’t be taken into account.
- Sort according to a user-defined formula specified via the
Modifiers:
-
asc: Sort by increasing value of the attribute.
-
desc: Sort by decreasing value of the attribute.
Examples
You can either set ranking from the API with the setSettings
method or from the dashboard.
The second and third examples show how to use the API to override Algolia’s default ranking criteria. You can do the same on the dashboard by visiting your index’s Configuration tab, clicking Ranking and Sorting, selecting Expand for the textual ranking criteria, and then dragging the custom ranking to the appropriate location. In the example, that means dragging price
to the top.
You shouldn’t need to change the default criteria since the out-of-the-box ranking works for most use cases.
Set the default ranking
1
2
3
4
5
6
7
8
9
10
11
12
$index->setSettings([
'ranking' => [
'typo',
'geo',
'words',
'filters',
'proximity',
'attribute',
'exact',
'custom'
]
]);
Sort index by an attribute in ascending order (Sort by price in this example)
1
2
3
4
5
6
7
8
9
10
11
12
13
$index->setSettings([
'ranking' => [
'asc(price)',
'typo',
'geo',
'words',
'filters',
'proximity',
'attribute',
'exact',
'custom'
]
]);
Sort index by an attribute in descending order (Sort by price in this example)
1
2
3
4
5
6
7
8
9
10
11
12
13
$index->setSettings([
'ranking' => [
"desc(price)",
"typo",
"geo",
"words",
"filters",
"proximity",
"attribute",
"exact",
"custom"
]
});