码迷,mamicode.com
首页 > 其他好文 > 详细

elasticsearch 关联查询对比

时间:2017-03-08 01:28:58      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:elasticsearch 关联查询对比

两种方式 嵌套和父子关联


Nested

  • Nested docs are stored in the same Lucene block as each other, which helps read/query performance. Reading a nested doc is faster than the equivalent parent/child.

  • Updating a single field in a nested document (parent or nested children) forces ES to reindex the entire nested document. This can be very expensive for large nested docs

  • "Cross referencing" nested documents is impossible

  • Best suited for data that does not change frequently

Parent/Child

  • Children are stored separately from the parent, but are routed to the same shard. So parent/children are slightly less performance on read/query than nested

  • Parent/child mappings have a bit extra memory overhead, since ES maintains a "join" list in memory

  • Updating a child doc does not affect the parent or any other children, which can potentially save a lot of indexing on large docs

  • Sorting/scoring can be difficult with Parent/Child since the Has Child/Has Parent operations can be opaque at times


综上所述,两种方式均有利弊,官方建议,自己处理关联关系,减轻ES的压力。

本文出自 “大海” 博客,请务必保留此出处http://12597095.blog.51cto.com/12587095/1904058

elasticsearch 关联查询对比

标签:elasticsearch 关联查询对比

原文地址:http://12597095.blog.51cto.com/12587095/1904058

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!