It sounds like you have a reasonably small data set that easily fits on a single node and the query concurrency is also not very high. It sounds like you have done the right thing by flattening and storing the parents data with each child, but I do not understand why you need more than a single index. The ideal number of shards will depend on your hardware as well as the size of the documents.
As you are not using any of the more advanced search features that sets Elasticsearch apart from Oracle I would expect Oracle to be able to handle this type of load quite well.