默认情况下,Meilisearch 根据相关性对结果进行排序。您可以更改此行为,以便用户在搜索时决定他们想要首先看到的结果。
sortableAttributes
索引设置á
将排在值为 122 的 z
之后。大写字母会像小写字母一样排序。它们在搜索结果中仍会显示为大写。sortableAttributes
sortableAttributes
索引设置。author
和 price
排序
"sort"
排在第五位。这意味着它充当一个决胜规则:Meilisearch 将首先将与搜索词紧密匹配的结果放在返回文档列表的顶部,然后才会应用用户请求的 "sort"
参数。换句话说,默认情况下 Meilisearch 提供一个非常相关的排序。 将 "sort"
排名规则放在列表的更靠前位置将强调详尽排序而不是相关排序:您的结果将更严格地遵循用户选择的排序顺序,但相关性不会那么高。sort
在排名规则中放置得更靠前
sortableAttributes
后,您可以使用sort
搜索参数来控制搜索结果的排序顺序。 sort
期望一个已添加到 sortableAttributes
列表的属性列表。 属性必须以 attribute:sorting_order
的形式给出。换句话说,每个属性后面必须跟一个冒号 (:
) 和一个排序顺序:升序 (asc
) 或降序 (desc
)。 使用 POST
路由时,sort
期望一个字符串数组:GET
路由时,sort
期望一个逗号分隔的字符串
sort
值的顺序很重要:属性在搜索参数值中的位置越高,Meilisearch 就越会优先于位置较低的属性。在我们的示例中,如果多个文档的 price
值相同,Meilisearch 将根据它们的 author
决定这些价格相似的文档之间的顺序。
"science fiction"
书籍
sort
可以帮助将同一作者的结果分组。此查询将只返回与查询词 "butler"
匹配的书籍,并根据其作者对结果进行分组