面试题答案
一键面试- 步骤阐述:
- 步骤一:构建查询语句
- 首先,我们需要使用
nested
查询来深入嵌套的项目列表。因为项目列表是嵌套结构,普通查询无法准确查询嵌套文档中的子字段。 - 在
nested
查询中,指定嵌套路径为项目列表的路径,然后在查询条件中筛选项目状态为“已完成”的文档。
- 首先,我们需要使用
- 步骤二:使用返回信息过滤API
- 使用
_source
字段来指定我们想要返回的字段,即员工姓名和状态为“已完成”的项目名称。
- 使用
- 步骤一:构建查询语句
- 代码示例(假设索引名为
employees
):
{
"_source": ["name", "projects.name"],
"query": {
"nested": {
"path": "projects",
"query": {
"match": {
"projects.status": "已完成"
}
}
}
}
}
上述代码中:
"_source"
指定返回员工的name
字段以及项目列表中的name
字段。"query"
部分使用nested
查询,path
指定为projects
,表示项目列表所在路径,内部的match
查询筛选出项目状态为“已完成”的项目。