Configuring OpenSearch

    Whenever possible, use the cluster settings API instead; opensearch.yml is local to each node, whereas the API applies the setting to all nodes in the cluster. Certain settings, however, require opensearch.yml. In general, these settings relate to networking, cluster formation, and the local file system. To learn more, see Cluster formation.

    You can specify environment variables as arguments using -E when launching OpenSearch:

    The first step in changing a setting is to view the current settings:

    1. GET _cluster/settings?include_defaults=true

    For a more concise summary of non-default settings:

    If you specify the same setting in multiple places, OpenSearch uses the following precedence:

    1. Persistent settings
    2. Settings from opensearch.yml
    3. Default settings

    To change a setting, just specify the new one as either persistent or transient. This example shows the flat settings form:

    1. PUT _cluster/settings
    2. {
    3. "action.auto_create_index" : false
    4. }
    5. }

    You can also use the expanded form, which lets you copy and paste from the GET response and change existing values:

    For more information about the Cluster Settings API, see .


    You can edit the OPENSEARCH_PATH_CONF=/etc/opensearch to change the config directory location. This variable is sourced from (Debian package) and /etc/sysconfig/opensearch(RPM package).

    If you set your customized OPENSEARCH_PATH_CONF variable, be aware that other default environment variables will not be loaded.

    You don’t mark settings in opensearch.yml as persistent or transient, and settings use the flat form:

    1. cluster.name: my-application
    2. action.auto_create_index: true

    The demo configuration includes a number of settings for the Security plugin that you should modify before using OpenSearch for a production workload. To learn more, see .