自定义排名规则
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 实现推广搜索结果 和 文档提升 的解决方法。