之前两篇我们说了 父子文档的索引创建, mapping字段, 以及数据的插入, 详情请点击下面链接进行查看:
一、Elasticsearch7.12父子文档(一)-父子文档mapping映射
二、Elasticsearch7.12父子文档(二)-父子文档插入数据
三、Elasticsearch7.12父子文档(三)-父子文档针对子文档的常用查询
下面我们重点说下父子文档中的联合查询, 父查子,子查父, 父子联合查询等
一、 根据父id查询子文档,并对子文档分页,以及获取总数
例: 获取父id=22739e3f8bc0d3bc8056c62ba12b2175 的所有 pos数据, 第二页数据,并返回总数
[C#] 纯文本查看 复制代码
{
"track_total_hits":true,
"from":5,
"size":5,
"query": {
"parent_id": {
"type": "pos",
"id": "22739e3f8bc0d3bc8056c62ba12b2175"
}
}
}
二、 父子文档联合查询,获取所有复合条件的父文档数据
例: 获取所有 pro=61000,并且 posname 包含 ‘销售’的所有父文档数据
[C#] 纯文本查看 复制代码
{
"query": {
"bool":{"must":[
{"term":{"proid":610000}},
{"has_child" : {
"type" : "pos",
"query" : {
"bool":{"must":[
{"match_phrase" : {"pos_name":"销售"}}
]
}
}
}
}
]
}
}
}
|