自定义排序规则
Meilisearch 中有两种类型的排序规则:内置排序规则 和自定义排序规则。本文介绍了使用和配置自定义排序规则的主要方面。
自定义排序规则可以提升某些文档在搜索结果中的排名,使其优先于其他同等相关性的结果。
升序和降序排序规则
Meilisearch 支持两种类型的自定义规则:一种用于升序排序,另一种用于降序排序。
要添加自定义排序规则,您需要指定属性名称,后跟冒号 (:
),以及 asc
(升序)或 desc
(降序)。
-
要应用**升序排序**(结果按属性值的升序排列):
attribute_name:asc
-
要应用**降序排序**(结果按属性值的降序排列):
attribute_name:desc
**该属性在索引中包含的所有文档中必须具有数值或字符串值**。
您可以使用更新设置端点 或更新排序规则端点 将此规则添加到现有的排序规则列表中。
示例
假设您有一个电影数据集。文档包含字段 release_date
(值为时间戳)和 movie_ranking
(值为整数,表示电影排名)。
以下示例创建一个规则,使较旧的电影比最近上映的电影更相关。1999 年上映的电影将出现在 2020 年上映的电影之前。
release_date:asc
以下示例将创建一个规则,使排名较高的电影比排名较低的电影更相关。排名较高的电影将首先显示。
movie_ranking:desc
以下数组包含所有内置排序规则,并将自定义规则放在处理顺序的底部
[
"words",
"typo",
"proximity",
"attribute",
"sort",
"exactness",
"release_date:asc",
"movie_ranking:desc"
]
搜索时排序和自定义排序规则
Meilisearch 允许用户使用查询时排序 中的sort
搜索参数 定义排序顺序。排序和自定义排序规则之间存在一些重叠,但两者确实有不同的用途。
通常,当您希望允许用户定义他们希望首先看到哪种类型的结果时,sort
将最有用。sort
的一个很好的用例是创建电商界面,客户可以在其中按产品价格的降序或升序对产品进行排序。
相反,自定义排序规则一旦配置就会始终处于活动状态,并且在您希望提升某些类型的结果时非常有用。自定义排序规则的一个很好的用例是确保电商网站中的打折产品始终出现在搜索结果的前列。
提升搜索结果和文档固定
Meilisearch 本身并不提供用于提升、固定和增强特定文档的功能,以便使其在搜索结果中比其他结果更突出显示。请参阅以下 Meilisearch 博客文章,了解有关 使用 React InstantSearch 实现提升的搜索结果 和 文档提升 的变通方法。