Elasticsearch - 获取嵌套字段
问题描述:
我想只获取嵌套字段,但不能,因为它不是叶字段。Elasticsearch - 获取嵌套字段
GET index/_search
{
"size": 10,
"fields": [
"nested_fields"
]
}
ERROR : "reason": "field [nested_fields] isn't a leaf field"
下面我试过,但不能在嵌套的对象每个ID和名称相匹配。
GET index/_search
{
"size": 10,
"fields": [
"nested_fields.id",
"nested_fields.name"
]
}
结果:
"fields": {
"events.id": [
"13342",
"24232",
"25534",
"63454"
],
"events.name": [
"R1413",
"R1414",
"R1415",
"R1416",
]
}
这是我期望的结果:
fields" : {
"evets" : {
"id" : "234234",
"name" : "RP1524"
},
.... so on
}
答
如果不具备一定的查询应该以某种方式相匹配的嵌套字段,你可以做到这一点像这样:
GET /index/_search
{
"size": 10,
"_source": ["nested_fields.id", "nested_fields.name"]
}
如果你也有一个nested
查询,并要返回匹配的嵌套的文档,你可以做这样的(与inner_hits
):
{
"query": {
"nested": {
"path": "nested_fields",
"query": {"match_all": {}},
"inner_hits": {}
}
}
}
第一个为我工作。谢谢 :) –