Thank you so much for taking your time to reply, truly.
It's the actual use case - but of course simplified. The end result we want is to be able to search for Companies and employees and return the Json for them.
I'm placing Company, email-addresses and employees in a neo4j graph-database, and replicating the data into multiple company-trees over in ElasticSearch using Nested Types. When a new employee is inserted into the graph-database I afterwards reindex the whole company-tree in Elastic Search. Imagine we have 2x Company trees (using Nested-types) that looks like this:
Google (Company, ID 1) -> Mr. Incredible (Employee, ID 2)
Google (Company, ID 1) -> email@example.com (email, ID 3)
Mr. Incredible (Employee, ID 2) -> firstname.lastname@example.org (email, ID 4)
AnotherCompany (Company, ID 5) -> Mr. Incredible (Employee, ID 6)
Mr. Incredible (Employee, ID 6) -> email@example.com (email, ID 7)
Employee with ID 2 and ID 6 is of course the same employee, but denormalized. If the employee changes his email, I need to reindex both trees.
This problem got me to read up on parent/child relationship mapping. Parent/Child mapping would solve the problem of updating both trees, but since email can't have both company and employee as parent, it's not really helping.
Hope it all makes sense.