elasticsearch将两个文档合并为一个文档

sqyvllje  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(242)

我有elasticsearch索引,它保存员工和他们的经理信息。每个员工都有一个id,每个经理也是一个员工,因此经理的文档结构与员工相同。唯一的区别是雇员将有一个非空的managerid,而经理没有managerid。
简化的文档结构如下所示:

Employeee document: { employeeId:1, ..., managerId:1234 , ..., name:.., address:..., etc...}
Manager document: {employeeId:1234, ..., managerId:null,...., name:.., address:..., etc...}

我通常按姓名或地址搜索员工,但我希望结果不仅包括员工详细信息,还包括他们的经理详细信息,即将经理文档作为新字段显示到员工搜索结果中。
因此,我希望生成的json文档类似于以下内容(请参阅新添加的managerdetails字段,其中包含有关管理器的所有信息):

{ employeeId:1, ..., managerId:1234 , managerDetails:{employeeId:1234, ..., managerId:null,...., name:.., address:..., etc...},..., name:.., address:..., etc...},
{employeedId:...,...}

限制:我必须说,我不能改变索引文档结构。
潜在的解决方案:对于每个员工运行两个查询,一个是针对员工的,一个是针对经理的,在应用程序逻辑中合并结果对我来说不是一个解决方案,因为有数以百万计的文档,而最小化请求数至关重要?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题