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.
Elasticsearch, a highly scalable, full-text search engine, is installed by default, as an embedded server. Elasticsearch is well-supported and almost certainly meets any search and indexing need you have, but you must not use the embedded version in your production deployment.
Learn to configure a remote Elasticsearch server or cluster here.
Solr is another capable and popular search engine supported in Liferay DXP.
Learn to configure a remote Solr server or cluster here. But first, make sure you understand the disparity in functionality between the supported search engines.
Choosing a Search Engine
Elasticsearch and Solr are both supported, but there are limitations to Liferay’s Solr integration. To make use of some features, you must choose Elasticsearch.
End User Feature Limitations of Liferay’s Solr Integration
- Liferay Commerce
- Workflow Metrics
- Custom Filter search widget
- The Low Level Search Options widget
- Search Tuning: Customizing Search Results
- Search Tuning: Synonyms
Developer Feature Limitations of Liferay’s Solr Integration
Implementation for the following APIs may be added in the future, but they are not currently supported by Liferay’s Solr connector.
- From Portal Core (Module:
portal-kernel
, Artifact:com.liferay.portal.kernel
):com.liferay.portal.kernel.search.generic.NestedQuery
com.liferay.portal.kernel.search.filter
:ComplexQueryPart
GeoBoundingBoxFilter
GeoDistanceFilter
GeoDistanceRangeFilter
GeoPolygonFilter
- From the Portal Search API (Module:
portal-search-api
, Artifact:com.liferay.portal.search.api
):com.liferay.portal.search.filter
:ComplexQueryPart
TermsSetFilter
com.liferay.portal.search.geolocation.*
com.liferay.portal.search.highlight.*
com.liferay.portal.search.query.function.*
com.liferay.portal.search.query.*
:com.liferay.portal.search.script.*
com.liferay.portal.search.significance.*
com.liferay.portal.search.sort.*
: onlySort
,FieldSort
, andScoreSort
are supported
- Portal Search Engine Adapter API (Module:
portal-search-engine-adapter-api
, Artifact:com.liferay.portal.search.engine.adapter.api
)com.liferay.portal.search.engine.adapter.cluster.*
com.liferay.portal.search.engine.adapter.document.UpdateByQueryDocumentRequest
com.liferay.portal.search.engine.adapter.index.*
: onlyRefreshIndexRequest
is supportedcom.liferay.portal.search.engine.adapter.search.*
:MultisearchSearchRequest
SuggestSearchRequest
com.liferay.portal.search.engine.adapter.snapshot.*
Liferay Commerce requires the TermsSetFilter
implementation, only available
in the Elasticsearch connector.
Elasticsearch Java Distribution Compatibility
Another factor to consider in your search engine selection is JDK version. The search engine and Liferay DXP must use the same Java version and distribution (e.g., Oracle Open JRE 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.