依日期排序字段Elasticsearch

问题描述:

我有elasticsearch索引&类型具有字段映射依日期排序字段Elasticsearch

"data_received_on": { 
"type": "date", 
"format": "YYYY-MM-DD" 
}, 

我需要获得最新的10条记录,我有大约5000条记录是在过去摊开1个月。

即。 date_received_on字段的值范围为2017-09-01至2017-09-30。

但是,当我在这个日期前订购时,我的排序不会以正确的顺序给我记录。当我通过数字或字符串字段进行排序时效果很好,但是当我使用日期字段时,它的行为不可预测。

我的排序条件很简单

"sort" : { 
"data_received_on" : { 
"order" : "desc" 
} 
} 

什么我需要做的不同,以获得基于排序正确的日期字段?

+0

请编辑您的问题,以显示 GET/{INDEX}/{TYPE}/_ mapping的完整结果。我自己也有类似的问题,但通常是当日期字段被错误地映射为一个字符串。这看起来很奇特。当您使用这种排序时,是否应用了其他筛选? – Miek

+0

我已经在2.4.4和5.5.0测试过,你的配置和查询工作正常。 – sunkuet02

我发现了这个问题。

原因是我的日期格式是YYYY-MM-DD。它应该是yyyy-MM-dd。解决这个问题