首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python elasticsearch-dsl父子关系

python elasticsearch-dsl父子关系
EN

Stack Overflow用户
提问于 2016-01-29 02:09:18
回答 2查看 2.4K关注 0票数 7

我开始使用python库elasticsearch-dsl

我正在尝试实现父子关系,但它不起作用:

代码语言:javascript
复制
    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()
EN

回答 2

Stack Overflow用户

发布于 2016-03-15 02:57:15

elasticsearch-dsl具有使用MetaField构建的父子关系

代码语言:javascript
复制
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')

如何插入和查询(HT to @Maresh):

字典插入DSL get:ChildDoc.get(id=child_id, routing=parent_id)

  • DSL insert: I believe it's child.save(id=child_id, routing=parent_id)

  • Dictionary insert:
  • '_parent': parent_id in
票数 10
EN

Stack Overflow用户

发布于 2016-11-27 21:46:36

好的,谢谢大家。对我有效的简单而混乱的解决方案是使用:

代码语言:javascript
复制
from elasticsearch_dsl import Mapping

mcc = Mapping(typeChild)
mcc.meta('_parent', type=typeParent)
mcc.field(fieldName, 'string', fielddata=True, store=True)
mcc.save(index)

在创建父单据类型之前

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35068869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档