gpt4 book ai didi

elasticsearch - 如何在elasticsearch中搜索数组中的第一个元素?

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

我只想在数组中的第一个元素上搜索对象,而忽略其余元素。
例如,对于下面的数据,如果我只想在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" }之类的东西来搜索列表中的第一辆车。有什么办法可以有效地做到这一点?

最佳答案

看看这个answer -当然可以,但是很麻烦。
我反而建议使用

  • ingest pipelines,第一辆车将被提取到新的根级字段或
  • updating by query与上面相同,但是可以随意执行,而不是仅在摄取时执行。
  • 关于elasticsearch - 如何在elasticsearch中搜索数组中的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63305778/

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