Ranking rules
Ranking rules are built-in rules that ensure relevancy in search results. Ranking rules are applied in a default order which can be changed in the settings. You can add or remove rules and change their order of importance.
Ranking rules can also be updated directly through the global settings route along with the other settings.
.
NOTE
Updating the settings means overwriting the default settings of MeiliSearch. You can reset to default values using the DELETE
routes.
GET
Path Variables
Default value
An array that contains built-in ranking rules sorted by order of importance.
curl \
-X GET 'http://localhost:7700/indexes/movies/settings/ranking-rules'
client.index('movies').getRankingRules()
client.index('movies').get_ranking_rules()
$client->index('movies')->getRankingRules();
index.ranking_rules
client.Settings("movies").GetRankingRules()
let ranking_rules: Vec<String> = movies.get_ranking_rules().await.unwrap();
Response: 200 Ok
List the settings.
[
"typo",
"words",
"proximity",
"attribute",
"wordsPosition",
"exactness",
"desc(release_date)"
]
POST
Update the ranking rules of an index.
Path Variables
Body
An array that contain ranking rules sorted by order of importance.
To add your own ranking rule, you have to communicate either asc
for ascending order or desc
for descending order followed by the field name in brackets.
To apply a descending sorting (results sorted by decreasing value of the attribute):
desc(attribute_name)
.
Example
curl \
-X POST 'http://localhost:7700/indexes/movies/settings/ranking-rules' \
--data '[
"typo",
"words",
"attribute",
"wordsPosition",
"exactness",
"asc(release_date)",
"desc(rank)"
]'
client.index('movies').updateRankingRules([
'words',
'proximity',
'attribute',
'wordsPosition',
'exactness',
'asc(release_date)',
'desc(rank)'
])
client.index('movies').update_ranking_rules([
'typo',
'words',
'proximity',
'attribute',
'wordsPosition',
'exactness',
'asc(release_date)',
'desc(rank)'
])
$client->index('movies')->updateRankingRules([
'typo',
'words',
'proximity',
'attribute',
'wordsPosition',
'exactness',
'asc(release_date)',
'desc(rank)'
]);
index.update_ranking_rules([
'typo',
'words',
'attribute',
'wordsPosition',
'exactness',
'asc(release_date)',
'desc(rank)'
])
"typo",
"words",
"proximity",
"attribute",
"wordsPosition",
"exactness",
"asc(release_date)",
"desc(rank)",
}
client.Settings("movies").UpdateRankingRules(rankingRules)
let ranking_rules = [
"typo",
"words",
"proximity",
"attribute",
"wordsPosition",
"exactness",
"asc(release_date)",
"desc(rank)",
];
let progress: Progress = movies.set_ranking_rules(&ranking_rules).await.unwrap();
Response: 202 Accepted
{
"updateId": 1
}
This updateId
allows you to track the current update.
DELETE
Reset the of an index to its default value.
Default value
An array that contains sorted by order of importance.
["typo", "words", "proximity", "attribute", "wordsPosition", "exactness"]
Path Variables
Example
curl \
-X DELETE 'http://localhost:7700/indexes/movies/settings/ranking-rules'
client.index('movies').resetRankingRules()
client.index('movies').reset_ranking_rules()
$client->index('movies')->resetRankingRules();
index.reset_ranking_rules
let progress: Progress = movies.reset_ranking_rules().await.unwrap();
Response: 202 Accepted
This updateId
allows you to .