Ren*_*ith 7 python elasticsearch elasticsearch-dsl
我开始使用python库elasticsearch-dsl.
我正在尝试实现父子关系,但它无法正常工作:
class Location(DocType):
name = String(analyzer='snowball', fields={'raw': String(index='not_analyzed')})
latitude = String(analyzer='snowball')
longitude = String(analyzer='snowball')
created_at = Date()
class Building(DocType):
parent = Location()
Run Code Online (Sandbox Code Playgroud)
ksi*_*ndi 10
elasticsearch-dsl使用MetaField构建了父子关系:
class Location(DocType):
name = String(analyzer='snowball', fields={'raw': String(index='not_analyzed')})
latitude = String(analyzer='snowball')
longitude = String(analyzer='snowball')
created = Date()
class Meta:
doc_type = 'location'
class Building(DocType):
class Meta:
doc_type = 'building'
parent = MetaField(type='location')
Run Code Online (Sandbox Code Playgroud)
如何插入和查询(HT到@Maresh):
- DSL获取:ChildDoc.get(id=child_id, routing=parent_id)
- DSL插入:我相信它child.save(id=child_id, routing=parent_id)
- 字典插入:'_parent': parent_id在字典中 指定