3

使用秒的映射定义:

  "time": {
           "type": "date",
           "store": "yes",
           "format": "yyyy/MM/dd HH:mm:ss",
           "index": "analyzed"
        },

时间字段按“desc”和“asc”正确排序

但是我们需要毫秒级的精度

  "time": {
           "type": "date",
           "store": "yes",
           "format": "yyyy/MM/dd HH:mm:ss.SSS",
           "index": "analyzed"
        },

然后奇怪的是,“asc”上的排序返回排序顺序,而“desc”上的排序返回正确的毫秒顺序

4

1 回答 1

3

回答我自己的问题..自定义映射语法不正确。下面是一个更正的版本,它以毫秒为单位对日期进行正确排序。

剩下的唯一小问题是如何以及为什么接受不正确的格式以及如何防止这种情况。

POST test2
{
   "settings": {
    "number_of_shards": 1
},
"mappings": {
  "logevent": {
     "properties": {
        "logtime": {
           "type": "date",
           "store": "yes",
           "format": "yyyy/MM/dd HH:mm:ss.SSS"
        },
        "eventKey": {
           "type": "string",
           "store": "yes",
           "index": "analyzed"
        },
        "channelid": {
           "type": "string",
           "store": "yes",
           "index": "analyzed"
        },
        "eventtype": {
           "type": "string",
           "store": "yes",
           "index": "analyzed"
        },
        "step": {
           "type": "string",
           "store": "yes",
           "index": "analyzed"
        },
        "line": {
           "type": "string",
           "store": "yes",
           "index": "analyzed"
        }
     }
  }
   }
}
于 2013-11-05T13:09:09.020 回答