Skip to main content

查询结果排序

Indexea 默认使用 相关度得分 对匹配的搜索结果进行排序,该分数用于衡量每个文档与查询的匹配程度。相关度得分 对应搜索结果中每一个 JSON 文档中的 _score 字段值,这是一个正浮点数,数值越大,相关度越高。你也可以使用自定义的排序方式,比如按照产品的发布时间进行排序,而且可以指定多个排序的字段。

在 Indexea 中,我们提供了三种设置排序条件的方式,它们分别是:

静态排序

静态排序是为查询预设的固定排序方法,比如按照产品的发布时间进行排序等。可以选择多个排序字段,排在上方的字段排序优先级更高。

static sort

如果所选择的字段是数组类型的,那么你也可以在 数字字段取值模式 下拉框中选择不同的数组取值模式,包括:

  • 最小值
  • 最大值
  • 求和
  • 平均值
  • 中位数

动态排序

静态排序是对查询的排序方法进行预设,但是在实际的搜索场景中,我们经常需要给用户提供不同的排序选项,例如用户可以选择按价格高低排序、按销量排序等等。

通过传递参数来控制不同的排序方法,Indexdea 使用两个参数 sort_by_fsort_by_m 来指定要进行排序的字段名和排序方法。
例如 sort_by_f=updated_at&sort_by_m=desc 按最新更新时间排序, 如无此参数则使用前面定义好的排序规则。

dynamic sort

同时你可以给排序字段设定一个 显示名称, 这个 显示名称 将显示在搜索页面中供用户选择(如下图),也可以指定多个动态排序字段。

select sort

脚本评分

脚本评分是一种自定义排序方式,它是根据你编写的脚本去改变搜索结果默认的 相关度得分 ,从而影响搜索结果的排序。

详情请看 脚本评分