推广

elasticsearch父子文档处理(join)

iseeyu3年前 (2024-02-21)推广128

父子关系映射

2、添加父文档数据

此处添加的是 (plan) 数据。

PUT /plan_index/_doc/plan-001
{
  "plan_id": "plan-001",
  "plan_name": "四月计划",
  "creator": "huan",
  "create_time": "2021-04-07 16:27:30",
  "plan_join": {
    "name": "plan"
  }
}

PUT /plan_index/_doc/plan-002
{
  "plan_id": "plan-002",
  "plan_name": "五月计划",
  "creator": "huan",
  "create_time": "2021-05-07 16:27:30",
  "plan_join": "plan"
}

注意️:

1、如果是创建父文档,则需要使用 plan_join 指定父文档的关系的名字(此处为plan)。

2、plan_join为创建索引的 mapping时指定join的字段的名字。

3、指定父文档时,plan_join的这2种写法都可以。

3、添加子文档

PUT /plan_index/_doc/act-001?routing=plan-001
{
  "act_id":"act-001",
  "act_name":"四月第一个活动",
  "creator":"huan.fu",
  "plan_join":{
    "name":"activity",
    "parent":"plan-001"
  }
}

PUT /plan_index/_doc/book-001?routing=plan-001
{
  "book_id":"book-001",
  "book_name":"四月读取的第一本书",
  "creator":"huan.fu",
  "plan_join":{
    "name":"book",
    "parent":"plan-001"
  }
}

PUT /plan_index/_doc/book-002?routing=plan-001
{
  "book_id":"book-002",
  "book_name":"编程珠玑",
  "creator":"huan.fu",
  "plan_join":{
    "name":"book",
    "parent":"plan-001"
  }
}

PUT /plan_index/_doc/book-003?routing=plan-002
{
  "book_id":"book-003",
  "book_name":"java编程思想",
  "creator":"huan.fu",
  "plan_join":{
    "name":"book",
    "parent":"plan-002"
  }
}

# 理论上 comment 的父文档是 book ,但是此处routing使用 plan 也是可以的。
PUT /plan_index/_doc/comment-001?routing=plan-001
{
  "comment_id":"comment-001",
  "comment_name":"这本书还可以",
  "creator":"huan.fu",
  "plan_join":{
    "name":"comments",
    "parent":"book-001"
  }
}

PUT /plan_index/_doc/comment-002?routing=plan-001
{
  "comment_id":"comment-002",
  "comment_name":"值得一读,棒。",
  "creator":"huan.fu",
  "plan_join":{
    "name":"comments",
    "parent":"book-001"
  }
}

注意️:

子文档的创建

1、子文档(子孙文档等)需要和父文档使用相同的路由键。

2、需要指定父文档的id。

3、需要指定join的名字。

4、查询文档

1、根据父文档id查询它下方的子文档

需求:返回父文档id是plan-001下的类型为book的所有子文档。

GET /plan_index/_search
{
  "query":{
    "parent_id": {
      "type":"book",
      "id":"plan-001"
    }
  }
}

根据父文档id查询子文档

2、has_child返回满足条件的父文档

需求:返回创建者(creator)是huan.fu,并且子文档最少有2个的父文档。

GET /plan_index/_search
{
  "query": {
    "has_child": {
      "type": "book",
      "min_children": 2,  
      "query": {
        "match": {
          "creator": "huan.fu"
        }
      }
    }
  }
}

has_child返回满足条件的父文档

3、has_parent返回满足父文档的子文档

需求:返回父文档(book)的创建者是huan.fu的所有子文档

GET /plan_index/_search
{
  "query": {
    "has_parent": {
      "parent_type": "book",
      "query": {
        "match": {
          "creator":"huan.fu"
        }
      }
    }
  }
}

has_parent返回满足父文档的子文档

五、Nested Object 和 join 对比

Nested Object join (Parent/Child)
1、文档存储在一起,读取性能高 1、父子文档单独存储,互不影响。但是为了维护join的关系,需要占用额外的内容,读取性能略差。
2、更新父文档或子文档时,需要更新整个文档。 2、父文档和子文档可以单独更新。
3、适用于查询频繁,子文档偶尔更新的情况。 3、适用于更新频繁的情况,且子文档的数量远远超过父文档的数量。

六、参考文档

1、join数据类型

2、has child查询

3、has parent查询

4、parent id查询

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/57576.html

相关文章

快速推广自己的产品(如何快速推广自己的品牌)

快速推广自己的产品(如何快速推广自己的品牌)

在当今社会,随着互联网的不断发展,网络的发展越来越快,每个人都知道要推广自己的产品。我们作为一个网络新手,在这方面就需要格外注意,要如何推广自己的产品,获得更多的收益呢?今天阿海带你来看看。在现代社会网络的发展越来越快,一个企业想要获得更多利益也就必须提高自身知名度。如果一个企业不重视宣传...

网站搜索引擎优化基本操作步骤。

网站搜索引擎优化基本操作步骤。

当涉及到搜索引擎营销和放置时,每个人都知道搜索引擎优化是以很低的成本获得访问者的关键。拥有良好排名的站点事实上对于站点的营销至关重要,因此,每家企业都希望针对其目标关键字词组拥有良好的搜索引擎排名。没有搜索引擎优化的秘诀,只有排名和布局的最佳实践才能打败你的竞争对手,获得期望的搜索关键词短语的高...

淘宝店铺怎么促进转化,淘宝店铺没访客怎么办(淘宝店铺没有转化怎么办)

淘宝店铺怎么促进转化,淘宝店铺没访客怎么办(淘宝店铺没有转化怎么办)

淘宝系统会根据产品的人群来推荐人群,如果你的产品的人群标签是乱的,系统也不会分辨,就会根据错误的人群标签去投放,所以就导致很多不需要购买这个产品的人群也会看到这个产品,然后这部分人群只会浏览而不进行购买,使得我们的店铺有流量但是没有转化。...

揭秘“快手”互联网营销术。

揭秘“快手”互联网营销术。

互联网时代,各种品牌、产品的更替如同大浪淘沙,很多明星产品虽名噪一时却如昙花一现,然而快手却在六年金戈铁马中脱颖而出,成为了短视频独角兽。那么快手是如何在互联网大潮中坚守下去的呢? 本期思享汇为大家请到快手商业产品副总裁张翼,从产品、渠道、流量、用户等方面解析之道,更解答了数年来深耕产品的独角兽背...

App推广难?没渠道?没人手?没钱?都是借口!主要原因是——你太懒!

App推广难?没渠道?没人手?没钱?都是借口!主要原因是——你太懒!

前几天看到网上一篇文章,说的是APP推广陷入困境,创业者太难的事。这个文章是一个行外的媒体人写的,有一定的道理,但 是对一个从业过App推广的人来说,我看到的却不是这样的情况,正所谓外行看热闹,内行看门道。对于我这样的内行人来说,App推广陷入困境的真正原因不 是太难,而是创业者太懒。...

聚米优选:抖音初代网红都去哪儿了?

原标题:聚米优选:抖音初代网红都去哪儿了? 在聚米优选的印象中,有很多初代网红,如:摩登兄弟、皮卡晨、西瓜妹、成都小甜甜等等。到如今,已经很久没有在抖音上看到这些初代网红的活动轨迹了,就像突然消失了一般,消弭在大众的视野里。 据聚米优选了解,这些初代网红其实并不是真的消失,有的是在大红大紫后...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片