Lucene, Elasticsearch, and Solr, are all full-text search engines.
But Lucene is a java library. While Elasticsearch and Solr are web servers, wrapping (some) Lucene features in their own REST API.
Using the same Lucene library, Elasticsearch and Solr are therefore very similar.
Some elements of choice for a new user could be:
The admin UI
Solr admin UI is rather standard for an average Joe, with lists, checkboxes and so on. Whereas Elasticsearch admin UI queries are tricky JSON command lines.
Both are easy to install, at least in their stand-alone mode. From times to times, Elasticsearch indexes will stop working, showing the infamous “red status”. I never experienced such a thing with Solr.
The distributed mode
Elasticsearch was built to work on several machines from the ground. Whereas Solr, being there first, had to implement a SolrCloud mode afterwards.
The JSON api
Elasticsearch api is incredibly complete and consistent, one can do anything with it. Solr api feels like a patchwork comparatively. And Solr api lacks some features available in SolrCloud api, like uploading the configuration files.
There is a company backing Elasticsearch, and we can feel it with all the projects that come with Elasticsearch: log analysis, IA, time series, hosting, plugins. Solr is more isolated: other projects work with it of course, but are not built for it.