当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"
}
}
}
}
}
本文介绍了如何使用Elasticsearch的DSL查询语法来检索对象类型字段及内部嵌套类型字段的数据。详细解析了匹配object字段内多层JSON的查询方式,以及查询nested类型字段内部字段的方法。对于含有嵌套对象的情况,展示了如何指定路径进行精确查询。

251

被折叠的 条评论
为什么被折叠?



