Elasticsearch具有嵌套文档(出色)。我想用它来存储消息(顶级文档)及其作者(嵌套文档)。
由于一个作者可以拥有许多条消息-可以将一个版本的Author引用为多条消息的子级吗?
这样,如果您在一个地方更新Author数据,它将在所有引用它们的地方更新。
注意:这与以下内容有关:如何在Elasticsearch中或在Lucene级别进行联接-此处的答案也可以解决该问题。
您可能希望使用_parent映射进行查看:http : //www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping- parent- field.html
_parent
这使您可以为作者创建一个类型,为消息创建一个单独的类型(作者的_parent类型),然后分别为文档建立索引并随时间添加到消息中。您只需要更新作者的单个版本,即可影响对该作者的所有邮件的查询。
要查询特定作者的邮件,您需要使用has_parent查询或过滤器。反之,使用has_child查找带有某些消息的作者。
我一直在使用这种更具动态性的表单,而不是使用嵌套文档,它对我来说效果很好(对于查询和构面而言),但是在加载该类型的任何文档之前,必须谨慎定义映射,因为_parent在事实之后添加了映射似乎不适合我。到目前为止,重新索引一直是我无法管理的事情。