
Elasticsearch 的 Join 类型
在 Elasticsearch 中,join 类型允许我们在不同的索引中存储关联数据,从而解决“一个文档包含另一个文档”的问题,像文章和评论之间的关系。
与合并索引的差异
需要注意的是,join 类型与合并多个索引不同。合并索引会将所有文档物理存储在同一个索引中,而 join 类型只是在逻辑上将它们关联起来。换句话说,使用 join 类型,文章和评论仍然存储在不同的索引中,但是 Elasticsearch 可以通过 join 字段将它们链接起来。
性能优势
新视窗企业管理系统是一款小巧、实用、利于后续开发的ASP程序。适合大中小型企业的网站建设。1、新闻管理 2、产品管理 3、订单管理 4、广告管理 5、下载管理 6、留言管理 8、单页栏目(如企业简介,资质荣誉)9、人才招聘等等。 新视窗企业管理系统 5.1 更新日志:1、修改产品列表的图片自动缩略,防止图片变形.2、修改后台添加产品分类时,排序ID不写入数据库的错误.3、修改首页企业简介的链接地址
与将评论存储在文章 object 字段中相比,join 类型在统计和查询性能方面具有优势。
- 统计: 使用 join 类型,我们可以使用 terms aggregation 分组统计每个文章的评论数。如果将评论存储在 object 字段中,则需要编写复杂的查询来提取这些信息。
- 查询: 加入类型允许我们使用 nested queries 轻松地查询包含特定条件评论的文章。将评论存储在 object 字段中,则需要使用更复杂的多层查询。
建议
对于像文章和评论这样的关系数据,我们建议使用 join 类型,而不是将评论挂载到文章文档中。这样做的原因包括:
- 减少数据修改开销
- 提高统计和查询性能
- 保持数据的结构化和组织性









