Skip to content

Search Engine setup

GeoCat Find 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 GeoCat Find.

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 GeoCat Find no configuration is required in GeoCat Find.

For reference these defaults are:

  • Host: localhost
  • Port: 9200

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

  • GEONETWORK_ES_HOST: Server name or IP where Elasticsearch is installed.
  • GEONETWORK_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 GEONETWORK_ES_HOST=elasticsearch
export GEONETWORK_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

Elasticsearch 8.19.13 is configured with security enabled by default. See details in https://www.elastic.co/guide/en/elasticsearch/reference/8.19/configuring-stack-security.html-

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

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

export GEONETWORK_ES_USERNAME=elasticuser
export GEONETWORK_ES_PASSWORD=Ad$sff442D
export GEONETWORK_ES_PROTOCOL=https

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} -Dgeonetwork.es.username=elasticuser"
JAVA_OPTS="${JAVA_OPTS} -Dgeonetwork.es.password=Ad$sff442D"
JAVA_OPTS="${JAVA_OPTS} -Dgeonetwork.es.protocol=http

Disable Elasticsearch security

To disable security in Elasticsearch, you can set the following environment variables:

export xpack.security.enabled=false
export xpack.security.enrollment.enabled=false
export xpack.security.transport.ssl.enabled=false
export xpack.security.http.ssl.enabled=false

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 GeoCat Find:

  • ELASTICSEARCH_URL: The primary URL of the Elasticsearch instance.
  • SERVER_BASEPATH: The server path of GeoCat Find in the server container, including the dashboards end-point. It should have the format /APPNAME/dashboards, where APPNAME is the path where GeoCat Find 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