1

我正在尝试使用持久性 API,使用 elasticsearch-dsl 6.2.1 版,如下所示:

class MyClass(Document):
    start = Date(format='dd-MM-yyyy HH:mm:ss:SSS')
    stop = Date(format='dd-MM-yyyy HH:mm:ss:SSS')

当我打电话时,MyClass.init() 我(通过 Kibana)看到映射确实符合我的预期:

    "start": {
      "type": "date",
      "format": "dd-MM-yyyy HH:mm:ss:SSS"
    },
    "stop": {
      "type": "date",
      "format": "dd-MM-yyyy HH:mm:ss:SSS"
    }

我有my_instance一个变量,它是MyClass. my_instance.startmy_instance.stop保留像 '15-06-2018 02:54:05:382' 这样的字符串

当我打电话时,my_instance.save()我得到以下异常:

elasticsearch_dsl.exceptions.ValidationException: {'start': 
[ValidationException("Could not parse date from the value ('15-06-2018 
02:54:05:281')", ValueError('Unknown string format:', '15-06-2018 
02:54:05:281'))], 'stop': [ValidationException("Could not parse date from the 
value ('15-06-2018 02:54:05:382')", ValueError('Unknown string format:', '15- 
06-2018 02:54:05:382'))]}

我究竟做错了什么?

4

1 回答 1

1

不幸的是elasticsearch-dsl,目前仅支持 ISO 格式的日期。如果您想使用任何其他格式,您需要自己指定 (de) 序列化。

于 2018-07-17T15:11:00.240 回答