首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch:整型排序

问Elasticsearch:整型排序
EN

Stack Overflow用户
提问于 2014-08-08 08:52:06
回答 1查看 4.6K关注 0票数 2

在elasticsearch (版本"1.1.2")中使用查询按整数字段排序时:

代码语言:javascript
复制
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "cubicCapacity": {
        "order": "asc",
        "ignore_unmapped": true
      }
    }
  ],
  "from": 0,
  "size": 150
}

结果正确,文档按自然顺序(1,2,5,10)排序。

但是,当试图使用“desc”完成相同的查询时:

代码语言:javascript
复制
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "cubicCapacity": {
        "order": "desc",
        "ignore_unmapped": true
      }
    }
  ],
  "from": 0,
  "size": 150
}

结果不正确,文档以某种奇怪的方式排序,但预期为(10,5,2,1)。

那么,为什么用"desc"排序不能给出一个自然顺序的正确结果呢?

P.S.按asc/desc进行排序时,但使用字符串类型(1、10、2、5)时,"desc"工作正确(5、2、10、1)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-08 09:22:14

您应该将前导零添加到您的数字中,这样您将得到0001,0010,0002,0005,而不是1,10,2,5。您所添加的前导零的数量将取决于您认为您将拥有的最大值。如果你认为它将低于100亿,那么你应该储存0000000005 (9个0)而不是5和0000000010 (8个零)而不是10个。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25199481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档