elasticsearch_dsl 的nested

在工作中会碰到这样的一个需求,mapping中定义的类型是nested

{
    "judgement":{
        "mappings":{
            "content":{
                "_all":{
                    "enabled":false
                },
                "_routing":{
                    "required":true
                },
                "properties":{
                    "fullJudgement":{
                        "properties":{
                            "caseNumber":{
                                "type":"text",
                                "index":false,
                                "store":true,
                                "norms":false
                            },
                            "caseType":{
                                "type":"keyword",
                                "index":false,
                                "doc_values":false
                            },
                            "court":{
                                "type":"keyword",
                                "index":false,
                                "store":true,
                                "doc_values":false
                            },
                            "courtHierarchy":{
                                "properties":{
                                    "level1":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level2":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    }
                                }
                            },
                            "courtList":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "courtOpinion":{
                                "type":"text",
                                "index":false,
                                "store":true,
                                "norms":false
                            },
                            "fullCourt":{
                                "type":"keyword",
                                "index":false,
                                "store":true
                            },
                            "hasHistoricalJudgement":{
                                "type":"boolean",
                                "index":false,
                                "store":true,
                                "doc_values":false
                            },
                            "hasSimilarJudgement":{
                                "type":"boolean",
                                "index":false,
                                "store":true,
                                "doc_values":false
                            },
                            "historicalJudgementTimeLines":{
                                "type":"nested",
                                "properties":{
                                    "historicalJudgements":{
                                        "type":"nested",
                                        "properties":{
                                            "caseNumber":{
                                                "type":"keyword",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "courtName":{
                                                "type":"keyword",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "isCurrentJudgement":{
                                                "type":"boolean",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "isRecorded":{
                                                "type":"boolean",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "judgementDate":{
                                                "type":"date",
                                                "index":false,
                                                "ignore_malformed":true,
                                                "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                                            },
                                            "judgementId":{
                                                "type":"keyword",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "judgementType":{
                                                "type":"keyword",
                                                "index":false,
                                                "doc_values":false
                                            },
                                            "title":{
                                                "type":"text",
                                                "index":false,
                                                "norms":false
                                            },
                                            "trialRound":{
                                                "type":"short",
                                                "index":false,
                                                "doc_values":false,
                                                "coerce":true
                                            }
                                        }
                                    },
                                    "judgementDate":{
                                        "type":"date",
                                        "index":false,
                                        "ignore_malformed":true,
                                        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                                    }
                                }
                            },
                            "id":{
                                "type":"keyword",
                                "store":true,
                                "doc_values":false
                            },
                            "judgementAbstract":{
                                "type":"text",
                                "index":false,
                                "norms":false
                            },
                            "judgementContent":{
                                "type":"text",
                                "norms":false,
                                "analyzer":"ik_max_word"
                            },
                            "judgementDate":{
                                "type":"date",
                                "store":true,
                                "ignore_malformed":true,
                                "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                            },
                            "judgementType":{
                                "type":"keyword",
                                "store":true,
                                "eager_global_ordinals":true
                            },
                            "judgementTypeText":{
                                "type":"text",
                                "fields":{
                                    "keyword":{
                                        "type":"keyword",
                                        "ignore_above":256
                                    }
                                }
                            },
                            "judges":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "keywords":{
                                "type":"keyword",
                                "store":true,
                                "eager_global_ordinals":true
                            },
                            "opponentLawyers":{
                                "type":"nested",
                                "properties":{
                                    "avatarUrl":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "claimProfileId":{
                                        "type":"text",
                                        "fields":{
                                            "keyword":{
                                                "type":"keyword",
                                                "ignore_above":256
                                            }
                                        }
                                    },
                                    "claimUserId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "isClaimed":{
                                        "type":"boolean",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "lawFirm":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "name":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "originalLawFirm":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "originalLawyerName":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "profileId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "status":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false
                                    }
                                }
                            },
                            "opponents":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "otherLawyers":{
                                "type":"nested",
                                "properties":{
                                    "avatarUrl":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "claimProfileId":{
                                        "type":"text",
                                        "fields":{
                                            "keyword":{
                                                "type":"keyword",
                                                "ignore_above":256
                                            }
                                        }
                                    },
                                    "claimUserId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "isClaimed":{
                                        "type":"boolean",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "lawFirm":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "name":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "originalLawFirm":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "originalLawyerName":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "profileId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "status":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false
                                    }
                                }
                            },
                            "paragraphs":{
                                "type":"nested",
                                "properties":{
                                    "subParagraphs":{
                                        "type":"nested",
                                        "properties":{
                                            "number":{
                                                "type":"short",
                                                "index":false,
                                                "doc_values":false,
                                                "coerce":true
                                            },
                                            "text":{
                                                "type":"text",
                                                "index":false,
                                                "norms":false
                                            }
                                        }
                                    },
                                    "type":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false,
                                        "coerce":true
                                    },
                                    "typeText":{
                                        "type":"keyword",
                                        "doc_values":false
                                    }
                                }
                            },
                            "proponentLawyers":{
                                "type":"nested",
                                "properties":{
                                    "avatarUrl":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "claimProfileId":{
                                        "type":"text",
                                        "fields":{
                                            "keyword":{
                                                "type":"keyword",
                                                "ignore_above":256
                                            }
                                        }
                                    },
                                    "claimUserId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "isClaimed":{
                                        "type":"boolean",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "lawFirm":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "name":{
                                        "type":"keyword",
                                        "doc_values":false
                                    },
                                    "originalLawFirm":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "originalLawyerName":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "profileId":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "status":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false
                                    }
                                }
                            },
                            "proponents":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "publishBatch":{
                                "type":"text",
                                "index":false,
                                "norms":false
                            },
                            "publishDate":{
                                "type":"date",
                                "index":false,
                                "doc_values":false,
                                "ignore_malformed":true,
                                "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
                            },
                            "publishType":{
                                "type":"keyword",
                                "index":false
                            },
                            "publishTypeHierarchy":{
                                "properties":{
                                    "level1":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level2":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    }
                                }
                            },
                            "publishTypeList":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "publishTypeText":{
                                "type":"keyword",
                                "index":false,
                                "store":true,
                                "doc_values":false
                            },
                            "reason":{
                                "type":"keyword",
                                "index":false,
                                "doc_values":false
                            },
                            "reasonHierarchy":{
                                "properties":{
                                    "level1":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level2":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level3":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level4":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level5":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    }
                                }
                            },
                            "reasonList":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "regionHierarchy":{
                                "properties":{
                                    "level1":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level2":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    },
                                    "level3":{
                                        "type":"keyword",
                                        "index":false,
                                        "eager_global_ordinals":true
                                    }
                                }
                            },
                            "regionList":{
                                "type":"keyword",
                                "doc_values":false
                            },
                            "regulationGroupByTrialRoundInfos":{
                                "type":"nested",
                                "properties":{
                                    "regulations":{
                                        "type":"nested",
                                        "properties":{
                                            "id":{
                                                "type":"keyword",
                                                "doc_values":false
                                            },
                                            "sectionParagraphs":{
                                                "type":"nested",
                                                "properties":{
                                                    "isHit":{
                                                        "type":"boolean",
                                                        "index":false,
                                                        "doc_values":false
                                                    },
                                                    "text":{
                                                        "type":"text",
                                                        "index":false,
                                                        "norms":false
                                                    },
                                                    "type":{
                                                        "type":"short",
                                                        "index":false,
                                                        "doc_values":false,
                                                        "coerce":true
                                                    }
                                                }
                                            },
                                            "text":{
                                                "type":"keyword",
                                                "doc_values":false
                                            }
                                        }
                                    },
                                    "trialRound":{
                                        "type":"long"
                                    },
                                    "trialRoundText":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    }
                                }
                            },
                            "similarJudgement":{
                                "properties":{
                                    "attitude":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false,
                                        "coerce":true
                                    },
                                    "court":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "id":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "score":{
                                        "type":"keyword",
                                        "index":false,
                                        "doc_values":false
                                    },
                                    "similarLevel":{
                                        "type":"short",
                                        "index":false,
                                        "doc_values":false,
                                        "coerce":true
                                    },
                                    "title":{
                                        "type":"text",
                                        "index":false,
                                        "norms":false
                                    }
                                }
                            },
                            "sourceName":{
                                "type":"keyword",
                                "index":false,
                                "doc_values":false
                            },
                            "sourceType":{
                                "type":"short",
                                "index":false,
                                "doc_values":false,
                                "coerce":true
                            },
                            "sourceUrl":{
                                "type":"keyword",
                                "index":false,
                                "doc_values":false
                            },
                            "title":{
                                "type":"text",
                                "store":true,
                                "analyzer":"ik_max_word"
                            },
                            "trialRound":{
                                "type":"short",
                                "index":false,
                                "doc_values":false,
                                "coerce":true
                            },
                            "trialRoundText":{
                                "type":"keyword",
                                "eager_global_ordinals":true
                            },
                            "trialYear":{
                                "type":"keyword",
                                "eager_global_ordinals":true
                            }
                        }
                    },
                    "originalUUID":{
                        "type":"keyword",
                        "doc_values":false
                    },
                    "originalUuid":{
                        "type":"text",
                        "fields":{
                            "keyword":{
                                "type":"keyword",
                                "ignore_above":256
                            }
                        }
                    }
                }
            }
        }
    }
}

  如果想要对fullJudgement.opponentLawyers.name查询二次就需要下面的查询语句

  

q = Q('nested', path='fullJudgement.opponentLawyers',
          query=Q('term', **{'fullJudgement.opponentLawyers.name': '王美丽'}) & Q('term', **{'fullJudgement.opponentLawyers.name': '王美'}))

    ms = Search(using=client, index='judgement', doc_type='content').query(q)

  

 

posted @ 2019-01-16 10:57  zhong_sp  阅读(746)  评论(0编辑  收藏  举报