We need to create a solution able to search for two entities: record and file. Each one has its properties and records can have zero or more files.
Appears to be very simple, but I am finding very difficult to find an easy answer in Elasticsearch.
After some research, I concluded that I should use join fields to create a parent-child relationship. Then, the first yellow flag is raised: the documentation says that it could have poor performance.
"The only case where the join field makes sense is if your data contains a one-to-many relationship where one entity significantly outnumbers the other entity"
We have a larger number of files compared to records, but it certainly do not "significantly outnumbers"... But OK... I guess. I am not sure what to expect from this poor performance.
The second yellow flag is that we can change the record of a file. And that can cause the file to go to a different shard? I found a topic saying that I should delete the child and then creating it again with a different parent. Is that really the way to achieve that?
Any help would be greatly appreciated.