A search engine is a critical component of your Liferay DXP installation. If you’re here, you probably know the basics already and want to configure a search engine for your Liferay DXP deployment.
Liferay DXP ships with Elasticsearch, a highly scalable, full-text search engine. Elasticsearch is well-supported and almost certainly meets any search and indexing need you have. For deployment settings, learn to configure a standalone or remote Elasticsearch server or cluster here.
Solr is also supported in Liferay DXP.
Elasticsearch and Solr are both supported, but there are some differences in how they work with Liferay DXP. In certain cases, you must choose Elasticsearch.
If you answer yes to either of these questions, you must choose Elasticsearch:
You’re using Liferay Commerce, Liferay’s commerce solution.
Your custom search code requires the use of the
TermsSetFilterAPI or the Geolocation APIs that are implemented in the Liferay Connector to Elasticsearch.
Liferay Commerce requires the
TermsSetFilter implementation available in the
Elasticsearch connector, so you must use Elasticsearch if you’re using
Both of these Elasticsearch-only developer features are not currently implemented in the Liferay Connector to Solr, but may be added in the future. If you must use either of those features in your search solution’s code, use Elasticsearch. If you’re using Liferay Commerce, use Elasticsearch. Otherwise, feel free to use Elasticsearch or Solr to index your portal content.
Another factor to consider in your search engine selection is JDK version. The search engine and Liferay DXP must use the same JDK version and distribution (e.g., Oracle Open JDK 1.8.0_201). Consult the Elasticsearch compatibility matrix and the Liferay DXP compatibility matrix to learn more about supported JDK distributions and versions. This consideration is not necessary for Solr, because no JVM level serialization happens between the servers. All communication occurs at the HTTP level.