ES中nest join
nested 类型是一个特殊object数据类型,允许数组的object的字段可以被独立的查询出来。
数据类型是如何被封装的
在lucene中没有嵌套object的概念,所以ES的用一个简单的数据数据列表来表示一个复杂的层次数据实体,例如一个博客和评论的实体:
1 | PUT nesttest/_doc |
其中commet类型会被转化成一个数组的形式如下:
1 | { |
而当执行查询的时候:
1 | GET nesttest/_search |
发现查询结果如下:
1 | { |
上面把所有的结果都列出来了, 但是 john的不在shenzhen啊?所以需要把commet定义为nested 类型。
定义nested类型
1 | PUT nest_new/_mapping/_doc |
ES嵌套深度被限制在50层
You need to set
install_url to use ShareThis. Please set it in _config.yml.
