I have an experience of building highly optimized search engine on top of Elasticsearch for Elanic. I have built systems where data between elasticsearch and MongoDB is synced in real time. Also, our ES cluster currently handles 20GB of product data and performs around 10000 queries per minute.