我有一个索引,其中包含以下映射:
{
"build": {
"properties": {
"info": {
"properties": {
"ci": {
"properties": {
"generic": {
"properties": {
"job": { ... }
}
}
}
}
}
},
"tests": {
"type": "nested",
"properties": {
"className": { ... }
"result": {
"properties": {
"status": { ... }
}
}
}
}
}
}
}
查询会是什么状态会返回同一关联的info.ci.generic.job
,而只返回与tests
的查询和info.ci.generic.job
的嵌套查询匹配的tests.result.status
?
答案 0 :(得分:0)
_source
和inner_hits
的组合可以满足您的需求:
{
"_source": "info.ci.generic",
"query": {
"filtered": {
"filter": {
"and": [
{
"term": {
"info.ci.generic.job.raw": "my-job-name"
}
},
{
"nested": {
"path": "tests",
"query": {
"term": {
"tests.result.status": "failure"
}
},
"inner_hits": {
"size": 16777216
}
}
}
]
}
}
}
}
结果:
{
"hits": {
"hits": [
{
"inner_hits": {
"tests": {
"hits": {
"hits": [
{
"_source": {
"status": "failure"
}
}
]
}
}
},
"_source": {
"info": {
"ci": {
"generic": {
"user": "builds",
"build": "18471",
"job": "CPIE-family-all-test",
"host": "http://platform.builds.test.netflix.net/"
}
}
}
}
}
]
}
}