Skip to content

Search Engine setup

GeoNetwork Enterprise uses ElasticSearch as a search engine for metadata content. See how to install Elasticsearch.

This section describes the setup required to integrate Elasticsearch and Kibana with GeoNetwork Enterprise.

Elasticsearch Setup

Geonetwork Elasticsearch Location

To configure GeoNetwork with the location of your Elasticsearch service:

When Elasticsearch is executed with the default configuration, in the same server as GeoNetwork Enterprise no configuration is required in GeoNetwork Enterprise.

For reference these defaults are:

  • ES_HOST: localhost
  • ES_PORT: 9200

To define the connection to Elasticsearch the following environmental variables should be defined:

  • ES_HOST: Server name or IP where Elasticsearch is installed.
  • ES_PORT: Elasticsearch port, defaults to 9200.

Example setenv.sh configuration, running Elasticsearch in a server named elasticsearch with a non-default port (9205) and http protocol:

export ES_HOST=elasticsearch
export ES_PORT=9205

An alternative method to configure the connections is to use Java System Properties, adding to JAVA_OPTS the following parameters:

  • -Dgeonetwork.es.host
  • -Dgeonetwork.es.port

Example setenv.sh configuration, running Elasticsearch in a server named elasticsearch with a non-default port (9205) and http protocol:

# append Elasticseach configuration
JAVA_OPTS="${JAVA_OPTS} -Dgeonetwork.es.host=elasticsearch -Dgeonetwork.es.port=9205"

GeoNetwork Elasticsearch Security

To configure GeoNetwork with the credentials used to access your Elasticsearch service:

To configure Elasticsearch is configured with security enabled (https://www.elastic.co/guide/en/elasticsearch/reference/7.17/configuring-stack-security.html) you need to configure the user credentials used to access the service.

No security required.

Example configuration, running Elasticsearch in a server named elasticsearch, with security enabled, providing the credentials and with the default port and protocol:

export ES_USERNAME=elasticuser
export ES_PASSWORD=Ad$sff442D
export ES_PROTOCOL=http

An alternative method to configure the connections is to use Java System Properties, adding to JAVA_OPTS the following parameters:

  • -Dgeonetwork.es.username
  • -Dgeonetwork.es.password
  • -Dgeonetwork.es.protocol

Example configuration, running Elasticsearch in a server named elasticsearch with a non-default port (9205) and http protocol:

JAVA_OPTS="${JAVA_OPTS} -Dggeonetwork.es.username=elasticuser"
JAVA_OPTS="${JAVA_OPTS} -Dggeonetwork.es.password=Ad$sff442D"
JAVA_OPTS="${JAVA_OPTS} -Dggeonetwork.es.protocol=http

Kibana Setup

Recommended: Kibana provides a dashboard for the Elasticsearch service. This dashboard is required to run analytics on GeoNetwork use.

Kibana service configuration

To configure Kibana service for use with GeoNetwork user interface.

In the Kibana server define the following environmental variables to access the Kibana dashboards from GeoNetwork Enterprise:

  • ELASTICSEARCH_URL: The primary URL of the Elasticsearch instance.
  • SERVER_BASEPATH: The server path of GeoNetwork Enterprise in the server container, including the dashboards end-point. It should have the format /APPNAME/dashboards, where APPNAME is the path where GeoNetwork Enterprise is deployed in the servlet container.

Example configuration, running Elasticsearch in a server named elasticsearch and with GeoNetwork deployed in /geonetwork path in the servlet container.

export ELASTICSEARCH_URL=http://elasticsearch:9200/
export SERVER_BASEPATH=/geonetwork/dashboards

GeoNetwork Kibana Location

To configure GeoNetwork to use Kibana dashaboard.

By default it is assumed Kibana is running on the same server as GeoNetwork.

To configure GeoNetwork to use a Kibana dashboard running on a different service location use:

  • KB_URL: The primary URL of the Kibana instance.

Example **setenv.sh`` configuration, running Kibana in another server namedkibana`:

export KB_URL=http://kibana:5601