获取具有相同父
问题描述:
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"}}
]
}
}
}
}
}
}
}
}
}