首页 > 解决方案 > 使用格式对日期字段进行排序不起作用

问题描述

我将 ElasticSearch 7.0 与ES NodeJS 一起使用。我用类型日期和格式映射了该字段。我尝试使用 date desc 进行排序,最新的对象放在索引 3 而不是第一个。

映射

client.indices.putMapping({
  index: 'property',
  body: {
    properties: {
      'created_at': { 
        'type': 'date', 
        "format":"YYYY-MM-DD'T'HH:mm:ss.000'Z'", 
        "ignore_malformed": true 
      }
    }
  }
})

搜索排序

client.search({
    index: 'property',
    body: {
      from : req.body.start,
      size : req.body.length,
      query : {
        "bool": {
          "must": []
        }
      },
      sort: [
        { 'created_at': { 'order': 'desc' }}
      ]
    }
})

结果

[
  { "created_at": "2019-05-03T17:19:59.000Z" },
  { "created_at": "2019-05-03T17:06:26.000Z" },
  { "created_at": "2019-05-08T16:00:34.000Z" }
]

预期结果

[
  { "created_at": "2019-05-08T16:00:34.000Z" }
  { "created_at": "2019-05-03T17:19:59.000Z" },
  { "created_at": "2019-05-03T17:06:26.000Z" }
]

标签: node.jselasticsearch

解决方案


推荐阅读