gpt4 book ai didi

elasticsearch - 使用内部匹配来查询父子关系中的数据

转载 作者:行者123 更新时间:2023-12-03 01:59:17 25 4
gpt4 key购买 nike

我有使用父子关系建模的数据。我希望能够使用内部匹配来从 parent 那里获取特定的 child ,至少我对内部匹配的定义是我的理解。

我的映射是:

{
"mappings": {
"parent_type": {
"properties": {
"num_prop": {
"type": "integer"
},
"str_prop": {
"type": "string"
}
}
},
"child_type": {
"_parent": {
"type": "parent_type"
},
"properties": {
"child_num": {
"type": "integer"
},
"child_str": {
"type": "string"
}
}
}
}
}

我的数据是:
{"index":{"_type":"parent_type","_id":1}}
{"num_prop":1,"str_prop":"hello"}
{"index":{"_type":"child_type","_id":1,"_parent":1}}
{"child_num":11,"child_str":"foo"}
{"index":{"_type":"child_type","_id":2,"_parent":1}}
{"child_num":12,"child_str":"bar"}
{"index":{"_type":"parent_type","_id":2}}
{"num_prop":2,"str_prop":"goodbye"}
{"index":{"_type":"child_type","_id":3,"_parent":2}}
{"child_num":21,"child_str":"baz"}
{"index":{"_type":"child_type","_id":4,"_parent":2}}
{"child_num":13,"child_str":"foo"}

从上面可以看出,ID为1的父级有两个 child “foo”和“bar”,而父级2也有一个子级“foo”。现在我想感染foo及其父1-我正在尝试使用内部匹配来完成。
{
"query": {
"has_child": {
"type": "child_type",
"query": {
"match": { "child_str": "foo"}
} }

},

"inner_hits": {

"parent_type" : {
"type" : {

"parent_type" : {
"query" : {
"match" : {"str_prop" : "hello"}
}

}
}




}
}
}

但是,这不起作用。有人可以让我知道这是怎么回事吗?

感谢致敬,
普里亚

最佳答案

答案是 :

{
"query": {
"filtered": {
"query": {


"match": { "str_prop": "hello"}


},
"filter":{
"has_child": {
"type": "child_type",
"query" : {
"filtered": {
"query": { "match_all": {}},
"filter" : {
"and": [
{"match": {"child_str": "foo"}}
]
}
}
},

"inner_hits" : {}
}
}
}
}

}

关于elasticsearch - 使用内部匹配来查询父子关系中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34151656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com