Solr Limitations
Liferay’s Solr implementation has limitations. Some Liferay features and APIs cannot be used when you choose Solr as the search engine. Install Elasticsearch for the best experience.
See Installing a Search Engine to learn about end user features that are not compatible with Solr.
Search Results Quality
Elasticsearch-specific APIs and mappings are being leveraged in Liferay’s search functionality. Because some of these features are not included in Solr, a lower quality of search results is expected when using Solr as Liferay’s search engine.
For example, the language aware sorting behavior in Liferay relies on the collation rules present only because of the ICU Analysis Plugin from Elasticsearch. When searching in Solr some non-optimal sorting behavior is expected, especially when field values contain diacritical marks.
Developer Feature Limitations
The following APIs 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 which is only available in the Elasticsearch connector.