Use the nuxeo-search-client-opensearch1 stack for OpenSearch 1.x, Elasticsearch 7.x or 8.x: packages, optional embedded server, and cluster installation guidance.
Setting up an OpenSearch 1.x, Elasticsearch 7.x or 8.x Cluster
To support OpenSearch 1.x, Elasticsearch 7.x or 8.x clusters, you need to install the nuxeo-search-client-opensearch1 package.
OpenSearch 1 is a fork of Elasticsearch 7, except some advanced features (not used by Nuxeo) they are fully compatible.
The nuxeo-search-client-opensearch1 package defines index settings, mappings and uses the REST API according to Elasticsearch 7 version (equivalent to OpenSearch 1 version).
It relies on OpenSearch 1.x client library to access the search cluster.
Note that for historical reasons you may find some "Elasticsearch" occurrences in configuration properties. Because they are compatible for these versions, Elasticsearch and OpenSearch could be used interchangeably in the documentation.
In addition to OpenSearch 1 and Elasticsearch 7, Nuxeo also works with Elasticsearch 8 cluster, as Elasticsearch 8 being backward compatible and able to honor Elasticsearch 7 API.
Please refer to Compatibility Matrix page for more information on the exact supported versions.
Embedded Mode
Unlike previous versions, there is no default embedded mode in Nuxeo LTS 2025. If you want to set up an OpenSearch server that runs in the same JVM as the Nuxeo Platform's, you have to install explicitly the nuxeo-opensearch1-embed package.
For production you need to setup a Search cluster.
Installing an Elasticsearch Cluster
Refer to the Elasticsearch documentation to install and secure your cluster. Basically:
- Don't run Elasticsearch open to the public.
- Don't run Elasticsearch as root.
- Secure the connection between Nuxeo and Elasticsearch:
- Elasticsearch 7 requires the X-Pack extension to enable secured communication between Nuxeo and Elasticsearch. Please follow this guide to Securing Elasticsearch.
- Elasticsearch 8 security is enabled by default. Follow this guide for further security configuration.
- Follow the Elasticsearch REST Security APIs documentation for configuring a user and role.
curl -XPOST -u elastic 'localhost:9200/_security/role/nuxeo_role' -H "Content-Type: application/json" -d '{
"cluster" : [
"all"
],
"indices" : [
{
"names" : [ "nuxeo*" ],
"privileges" : [ "all" ]
}
]
}'
An example on how to create a user for that role:
curl -XPOST -u elastic 'localhost:9200/_security/user/nuxeo_user' -H "Content-Type: application/json" -d '{
"password" : "nuxeo_secret_password",
"full_name" : "Nuxeo User",
"roles" : [ "nuxeo_role" ]
}'
Recommended Tuning
If you have a large number of documents or if you use Nuxeo in cluster, you may reach the default configuration limitation. Here are some recommended tuning:
Consider disabling the OS swapping or using other Elasticsearch option to prevent the heap to be swapped.
In /etc/default/elasticsearch file, you can increase the JVM heap to half of the available OS memory:
# For a dedicated node with 12g of RAM
ES_JAVA_OPTS="-Xms6g -Xmx6g"
Installing an OpenSearch Cluster
Refer to the OpenSearch documentation to install OpenSearch. Basically:
- Don't run OpenSearch open to the public.
- Don't run OpenSearch as root.
- Secure the connection between Nuxeo and OpenSearch. The security plugin is enabled by default with demo values which need to be replaced. See OpenSearch Security Configuration for guidance.
- Follow the OpenSearch Access Control API documentation for configuring a user and role.
curl -XPUT -u admin http://localhost:9200/_plugins/_security/api/roles/nuxeo_role -H "Content-Type: application/json" -d '{
"cluster_permissions" : [
"all"
],
"index_permissions" : [
{
"index_patterns" : [ "nuxeo*" ],
"allowed_actions" : [ "all" ]
}
]
}'
An example on how to create a user for that role:
curl -XPUT -u admin http://localhost:9200/_plugins/_security/api/internalusers/nuxeo_user -H "Content-Type: application/json" -d '{
"password" : "nuxeo_secret_password",
"description" : "Nuxeo User",
"backend_roles" : [ "nuxeo_role" ]
}'
Recommended Tuning
If you have a large number of documents or if you use Nuxeo in cluster, you may reach the default configuration limitation. Here are some recommended tuning OpenSearch options
You can increase the JVM heap to half of the available OS memory:
# For a dedicated node with 12g of RAM
OPENSEARCH_JAVA_OPTS=-Xms6g -Xmx6g
See also
- Search setup — Configuring Nuxeo to Access the Search Cluster, reindex, mappings, multi-repository, and troubleshooting (all illustrated with the
opensearch1property namespace). - Search setup for OpenSearch 2.x — OpenSearch 2.x client (
opensearch2namespace). - Search setup for Elasticsearch 9.x — Elasticsearch 9.x client (
elasticsearch9namespace). - Search setup for MongoDB Atlas Search — MongoDB Atlas Search client (
mongoatlasnamespace). - Nuxeo Search Client OpenSearch / Nuxeo Search Client Elasticsearch / Nuxeo Search Client MongoDB Atlas — Marketplace packages.