首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对长浮点型字段的排序不能正常工作(ES 1.3.4)

对长浮点型字段的排序不能正常工作(ES 1.3.4)
EN

Stack Overflow用户
提问于 2014-10-13 14:21:22
回答 1查看 1.4K关注 0票数 0

我有一个基于浮动类型字段的不正确排序的问题。我的数据中有一个名为gtd_sort_number的浮点型字段(参见下面的数据示例)。值是一个微时间,所以它很长,带有十进制值(如下面的例子所示)。现在,当我执行如下所示的查询(第二个示例)时,结果集没有正确排序。有些项目的顺序是正确的,有些则不是。第一个示例显示了从查询返回的数据,因此您可以看到"sort": [1412944380]添加到结果中。在我看来,ES以某种方式舍入前一个值,然后对其进行排序,因此它会产生错误的结果,因为它会将不同(相似)的值舍入为相同的值。

你知道这是怎么回事吗?

代码语言:javascript
运行
复制
{
  "_index": "netnotes",
  "_type": "activity",
  "_id": "a53ab53ba52b3f03bf8e547a0633dc3f",
  "_score": null,
  "_source": {
    "id": "a53ab53ba52b3f03bf8e547a0633dc3f",
    "gtd_sort_number": 1412944355.6989,
    "gtd_section_id": "37aee9eb-e836-41f1-89a8-8d173fe23d57",
    "gtd_board_id": "0d7b113b24d53a5a9ca50345173c4c49",
    "gtd_color": "#000000",
    "gtd_type": "note",
    "gtd_label": "",
    "gtd_private": null
  },
  "sort": [
    1412944380
  ]
}

查询示例

代码语言:javascript
运行
复制
GET /netnotes/activity/_search
{
  "query": {
    "match_all": {}
  },
  "post_filter": {
    "term": {
      "gtd_board_id": "0d7b113b24d53a5a9ca50345173c4c49"
    }
  },
  "sort": {
    "gtd_sort_number": "desc"
  },
  "from": 0
}
EN

回答 1

Stack Overflow用户

发布于 2014-10-13 23:11:35

这可能是因为浮点数无法保存您的数字,这意味着它没有必要的精度和位数来保存该数字。您可能希望将映射从"float“更改为"double”。

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

https://stackoverflow.com/questions/26334026

复制
相关文章

相似问题

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