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