查询结果排序
Indexea 默认使用 相关度得分 对匹配的搜索结果进行排序,该分数用于衡量每个文档与查询的匹配程度。相关度得分 对应搜索结果中每一个 JSON 文档中的 _score 字段值,这是一个正浮点数,数值越大,相关度越高。你也可以使用自定义的排序方式,比如按照产品的发布时间进行排序,而且可以指定多个排序的字段。
在 Indexea 中,我们提供了三种设置排序条件的方式,它们分别是:
静态排序
静态排序是为查询预设的固定排序方法,比如按照产品的发布时间进行排序等。可以选择多个排序字段,排在上方的字段排序优先级更高。
如果所选择的字段是数组类型的,那么你也可以在 数字字段取值模式
下拉框中选择不同的数组取值模式,包括:
- 最小值
- 最大值
- 求和
- 平均值
- 中位数
动态排序
静态排序是对查询的排序方法进行预设,但是在实际的搜索场景中,我们经常需要给用户提供不同的排序选项,例如用户可以选择按价格高低排序、按销量排序等等。
通过传递参数来控制不同的排序方法,Indexdea 使用两个参数 sort_by_f
和 sort_by_m
来指定要进行排序的字段名和排序方法。
例如 sort_by_f=updated_at&sort_by_m=desc
按最新更新时间排序, 如无此参数则使用前面定义好的排序规则。
同时你可以给排序字段设定一个 显示名称
, 这个 显示名称
将显示在搜索页面中供用户选择(如下图),也可以指定多个动态排序字段。
脚本评分
脚本评分是一种自定义排序方式,它是根据你编写的脚本去改变搜索结果默认的 相关度得分 ,从而影响搜索结果的排序。
详情请看 脚本评分。