我在弹性搜索中具有以下格式的数据。
{
"fname": "FN1",
"lname": "LN1",
"images": [
{
"type": "passport",
"url": ".."
},
{
"type": "full",
"url": ".."
},
{
"type": "full",
"url": ".."
}
]
}
在通过弹性搜索获取数据时,是否可以从数组字段中选择性地选择项目,例如,是否可以在图像数组中仅包含类型为“ passport”的对象?
答案 0 :(得分:1)
Nested inner hits可以助您一臂之力,但名称暗示您正在处理的字段的数据类型应为nested
。假设字段图像的数据类型为nested
,则可以基于images.type
进行过滤并利用nested_hits
仅返回匹配的嵌套文档。
因此查询如下:
{
"query": {
"bool": {
"filter": [
{
"nested": {
"path": "images",
"query": {
"term": {
"images.type": "passport"
}
},
"inner_hits": {}
}
}
]
}
}
}