当es存储的数据中,存在多层json,并且数据是JsonArray,而不仅仅是JsonObject时,我们知道:
- 查询object类型字段的内部字段,dsl命令类似于:
GET index_name/_search
{
"query": {
"match": {
"a.b.c.d": "value"
}
}
}
- 查询nested类型字段的内部字段,dsl命令类似于:
GET index_name/_search
{
"query": {
"nested": {
"path": "a",
"query": {
"match": {
"a.b": "value"
}
}
}
}
}
- 当一个object类型字段的内部有nested类型字段时,查询该nested类型字段的内部字段,dsl命令类似于:
GET index_name/_search
{
"query": {
"nested": {
"path": "a.b",
"query": {
"match": {
"a.b.c": "value"
}
}
}
}
}