es根据某个字段排序及问题处理

因为业务需求,需要对某个字段进行排序展示,所以自己就用了以下方法

body = {
            "query": {
                "bool": {
                    "must": [
                        {
                            "term": {
                                "group": group_name
                            }
                        }
                    ]
                }
            },
            "from": (page_num - 1) * 30,  # 从什么位置开始
            "size": 30,  # 返回条数
            "collapse": {
                "field": filed_name
            },
            "sort": [{"需要排序的字段": {'order': "升序asc降序asc"}}]
}

但是这种会出现一个问题,就是如果你排序的字段内容是字符串的话,将混乱,不起作用,所以我做了一下处理

"pv": {
  "type": "integer",  # 搜索指数排序
  "index": "true"  # 不建索引
},
"pvCrc": {
  "type": "float",  # 搜索涨幅排序
  "index": "true"  # 不建索引
}      

就是你在创建索引的时候需要将这个字段的type根据情型定义成以上两种形式

原文地址:https://www.cnblogs.com/itBlogToYpl/p/13488975.html