假设索引数据如下
{
"name": "John Smith",
"age": 20,
"country": "USA",
"pets": [
{
"name": "Lisa",
"type": "dog"
},
{
"name": "Max",
"type": "cat"
}
]
},
{
"name": "Andrea Silva",
"age": 30,
"country": "Portugal",
"pets": [
{
"name": "Jack",
"type": "dog"
},
{
"name": "Ruby",
"type": "cat"
}
]
},
{
"name": "Matt Leipzin",
"age": 22,
"country": "USA",
"pets": [
{
"name": "Travis",
"type": "dog"
},
{
"name": "Polaris",
"type": "cat"
}
]
}
我应该如何获得以下场景的结果:
按名称搜索来自美国且有狗的宠物主人。
结果中的pets
对象必须只包含狗而不是猫。
我只能通过美国的名字获得所有者,但不知道如何过滤嵌套的pets
对象。
{
'query': {
'bool': {
'must': {
'query_string': {
'fields': ['name']
'query': <name>
}
},
'filter': {
'term': {
'country': 'USA'
}
}
}
}
}
提前谢谢!