【发布时间】:2020-11-28 00:37:56
【问题描述】:
我只想在数组中的第一个元素上搜索对象,而忽略其余部分。
例如,对于下面的数据,如果我只想在 model 中搜索 vehicle 数组中的第一个元素。
{
"drivers" : [
{
"last_name" : "McQueen",
"vehicle" : [
{
"make" : "Powell Motors",
"model" : "Canyonero"
},
{
"make" : "Miller-Meteor",
"model" : "Ecto-1"
}
]
},
{
"last_name" : "Buzz",
"vehicle" : [
{
"make" : "Powell Motors",
"model" : "Canyonero"
},
{
"make" : "Miller-Meteor",
"model" : "Ecto-1"
}
]
}
}
我知道我可以进行这样的嵌套查询,但这里的问题是搜索了所有车辆。我只想搜索车辆列表中的第 0 个元素,而忽略其余元素。
{
"query": {
"nested": {
"path": "driver",
"query": {
"nested": {
"path": "driver.vehicle",
"query": {
"bool": {
"must": [
{ "match": { "drivers.vehicle.model": "Canyonero" } }
]
}
}
}
}
}
}
}
理想情况下,我希望像{ drivers.vehicle[0].model": "Canyonero" } 这样每次都搜索列表中的第一辆车。有什么方法可以有效地做到这一点?
【问题讨论】:
标签: elasticsearch amazon-elastic-beanstalk elastic-stack elasticsearch-5