| 问题 | object 数组展平后,user.first 与 user.last 可以来自不同元素 |
|---|---|
| 方案 | 映射声明 { "type": "nested" },查询用 nested 包裹条件 |
| inner_hits | 返回具体命中的嵌套对象,便于展示与调试 |
示例
示例
PUT /my-index/_mapping
{
"properties": {
"user": {
"type": "nested",
"properties": {
"first": { "type": "keyword" },
"last": { "type": "keyword" }
}
}
}
}
GET /my-index/_search
{
"query": {
"nested": {
"path": "user",
"query": {
"bool": {
"must": [
{ "term": { "user.first": "John" } },
{ "term": { "user.last": "Smith" } }
]
}
},
"inner_hits": {}
}
}
}nested 文档是独立 Lucene 文档,跨 nested 与主文档排序聚合有限制,相关度计算也分开统计。