获取具有相同父

问题描述:

OK文件,所以我很新的ElasticSearch,我需要你的帮助......获取具有相同父

我有一个类型,如:

|--------------------------- 
| PARENT_TYPE 
|--------------------------- 
| some_field: string 
| another_field: string 
|--------------------------- 

和一个孩子喜欢类型:

|--------------------------- 
| CHILD_TYPE 
|--------------------------- 
| query_field: string 
| another_query_field: string 
| _parent: PARENT_TYPE 
|--------------------------- 

所以......简而言之:我们有PARENT_TYPE文件和CHILD_TYPE子文件。

我想要做的是:

  • 获取所有的孩子(这将最有可能只有一个)与特定query_field
  • 获取其父
  • 获取的所有儿童该特定父代

(或...换言之:通过query_field查询CHILD_TYPE并返回所有CHILD _TYPE与父母相同)。


什么我迄今所做的:

(这只是得到我需要的query_field CHILD_TYPEs而我依然缺少发现最儿 - 用最相同。 -parent的事情。

PUT ES/my_index/_search 
{ 
    "query" : { 
     "filtered" : { 
     "filter" : { 
      "bool" : { 
       "must" : [ 
       { "term" : {"query_field" : "word" }}, 
       { "term" : {"another_query_field" : "en"}} 
       ] 
      } 
     } 
     } 
    } 
} 

那么,怎么可能做到?想法?

好的,这就是我想到的。

我不知道它是否是最佳的解决方案(在任何的建议是更受欢迎),但它最肯定似乎是工作...

{ 
    "query": { 
     "has_parent": { 
      "type": "PARENT_TYPE", 
      "query": { 
       "has_child": { 
        "type": "CHILD_TYPE", 
        "query": { 
         "filtered" : { 
          "filter" : { 
           "bool" : { 
            "must" : [ 
             { "term" : {"query_field" : "someValue" }}, 
             { "term" : {"another_query_field" : "yetAnotherValue"}} 
            ] 
           } 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
}