比如有这么一个索引,结构大概是这样的
name: text
sons { type: nested, name: text }
我插入数据
{"老王", sons { "小王" }}
其实是插入两个文档的,
但在_search的时候,或者是在_count的时候,
它显示是一个文档呢?
name: text
sons { type: nested, name: text }
我插入数据
{"老王", sons { "小王" }}
其实是插入两个文档的,
但在_search的时候,或者是在_count的时候,
它显示是一个文档呢?
2 个回复
FFFrp
赞同来自:
Ombres
赞同来自:
有以下三个doc,A,B,C,他们有子文档1,2......
A - 1,2,3
B - 4
C - 5,6
在索引中:1,2,3,A,4,B,5,6,C
es中的nested查询使用ToParentBlockJoinQuery,大概的原理是二次查询,先查询子query查到符合的DISI,二次查父文档,把父文档的匹配结果返回。优化的地方在于子文档匹配到以后,向后追最近的一个父文档id就是该子文档的父文档