Elasticsearch5.2 JAVA API如何支持多字段排序

开源中国首席公关 发布于 2017/03/30 18:29
阅读 1K+
收藏 1

之前使用过Solr的自定义评分规则来影响排序,但是ES的Sort本人测试只能按一个字段排序,多次addSort后,按最后一次的排序参数排序。一个现实的场景:

数据结构:id,weight,createTime

本人想先按weight排序,weight相同的再按createTime排序。不知道该如何实现?对于ES的复杂排序的实现方式,希望大家给一些建议!

加载中
0
薯粉1Q84
薯粉1Q84

我测试了一下 发现没啥问题啊

    "sort": [
        {
            "weight": {
                "order": "desc"
            }
        },
        {
            "createTime": {
                "order": "asc"
            }
        }
    ],

 

会按照weight降序后如果weight相同的再按createTime升序进行排序。

开源中国首席公关
开源中国首席公关
谢谢回答,发现是我的weight字段因为有null值,所以影响了排序,然后我在mapping的时候添加了null_value来处理了null值情况就好了,非常感谢!
返回顶部
顶部