我正在尝试使用 python 中的 elasticsearch 库将对象保存在弹性内部。下面是我正在使用的课程
from elasticsearch_dsl import DocType, Date, InnerDoc, Text, Object
class Child(Object):
child1 = Text()
child2 = Text()
class Parent(DocType):
parent1 = Object()
parent2 = Date()
parent3 = Date()
parent4 = Text()
parent5 = Child()
class Meta:
index = 'my_index'
下面是我的弹性映射
{
"mappings": {
"doc": {
"properties": {
"parent5": {
"type": "object",
"child1": {
"tracking_number": {
"type": "text"
},
"child2": {
"type": "text"
},
}
},
"parent1": {
"type": "object"
},
"parent2": {
"type": "text"
},
"parent3": {
"type": "date"
},
"parent4": {
"type": "date"
}
}
}
}
}
如果我将类型更改为“对象”并在 python 代码中检索文档,则会出现以下错误。
TypeError: Object of type 'InnerDoc' is not JSON serializable
如果我将类型更改为“InnerDoc”,我可以检索文档,但无法将其保存为弹性文件。
我假设我的映射是错误的,但不是很确定。任何形式的帮助/见解将不胜感激。提前致谢