亲子联接比非规范化字段有什么好处

时间:2019-11-06 06:58:37

标签: elasticsearch

我了解elasticsearch父/子联接类型支持诸如has_parent,has_child之类的查询。但是对于我的简单用例,我只能拥有一种亲子类型,一个父母可以拥有数百万个孩子,一个孩子只能拥有一个父母。我可以将父项表示为字符串字段。我关心并且做的唯一的查询是获取具有特定parent_id的所有子文档。

在以下三个数据模型中,查询性能的排名如何?

  1. 将索引作为父/子文档,并使用parent_id查询来获取所有子文档。
  2. 使用parent_id作为文档上的字符串字段对非规范化文档进行索引,通过parent_id字段路由文档,并使用term_query提取具有特定parent_id字段的所有文档。
  3. 将子文档索引为嵌套字段,并在顶级字段中索引parent_id字段。 (这具有更新缓慢的缺点,但是我更关心查询性能)

这个自我回答的问题碰到了同样的情况,但答案尚不清楚,唯一的查询父文档类型是我要按parent_id字符串进行匹配。 Why shouldn't I easily implement a join datatype relationship similar to Elasticsearch's parent-child

0 个答案:

没有答案