尝试在 elasticsearch 中使用 Date 时出现异常-dsl.py 持久性 api
Exception when trying to use Date in elasticsearch-dsl.py persistence api
我正在尝试使用持久性 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.start
和 my_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'))]}
我做错了什么?
遗憾的是elasticsearch-dsl
目前仅支持 ISO 格式的日期。如果您想使用任何其他格式,您需要自己指定(反)序列化。
我正在尝试使用持久性 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.start
和 my_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'))]}
我做错了什么?
遗憾的是elasticsearch-dsl
目前仅支持 ISO 格式的日期。如果您想使用任何其他格式,您需要自己指定(反)序列化。