Since ES provides a REST api, with all the powerful frontend frameworks out there, it will be tempting to make ES REST calls directly from the frontend.
Would it be recommended to make such client-side ES calls especially from a public facing site (i.e. a site which doesn't require authentication). What would be suggestions to make such a setup secure which wouldn't involve a login screen?
Do not expose Elasticsearch to the Internet, instead have an application make requests on behalf of the Internet. Do not entertain the thought of having an application "sanitize" requests to Elasticsearch. Understand that it is possible for a sufficiently determined malicious user to write searches that overwhelm the Elasticsearch cluster and bring it down. For example:
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.