All versions of this manual
X
 

Entity resolution: Installing

This section is for administrators setting up Entity Resolution for the first time.

For configuring the feature once installed, see how to configure Entity Resolution.

Entity Resolution versions

When installing the Entity Resolution service, please refer to this table for compatibility between the Linkurious Enterprise server and the Entity Resolution server:

Entity Resolution server version Compatible Linkurious Enterprise versions
v1.0.0 (not recommended) v4.2.0
v1.1.0 v4.2.1+

When updating from Linkurious Enterprise from v4.2.0 to v4.2.1, you must clear Entity Resolution results.

Local setup

⚠️ This configuration is for quick local testing, and should not be used for production:

  • It does not include data persistence, authentication or network security
  • It requires Linkurious Enterprise to be running locally. (For production deployments, please see the production setup section).

The following steps will help you run Entity Resolution using the docker command line.

ℹ️ In the following commands, please replace LINKURIOUS_PRIVATE_REGISTRY, YOUR_EMAIL and YOUR_DOWNLOAD_KEY with the values found in the "download" section of the customer center.

Step 1: Download the Docker image

docker login -u 'YOUR_EMAIL' -p 'YOUR_DOWNLOAD_KEY' LINKURIOUS_PRIVATE_REGISTRY
docker pull --platform linux/x86_64 LINKURIOUS_PRIVATE_REGISTRY/linkurious/linkurious-entity-resolution:1.1.0

Step 2: Start the Entity Resolution service

docker run -p 8080:8080 --platform linux/x86_64 LINKURIOUS_PRIVATE_REGISTRY/linkurious/linkurious-entity-resolution:1.1.0

Visit http://localhost:8080/status to confirm the service is running (it will show the service uptime in seconds):

{"status":"API is up","uptime":10}

Step 3: Enable Entity Resolution and set up the service URL in the configuration

Go to Global configuration > Entity Resolution to enable Entity resolution in Linkurious Enterprise and set the service URL for your local setup.

{
  "enabled": true,
  "url": "http://localhost:8080"
}

For more information, see how to configure Entity Resolution.

Persistence for local use

The above steps are meant for local testing and do not include data persistence, which leads to inconsistent results as soon as the service is restarted.

By default, the service uses an SQLite database located within the container filesystem at /usr/src/app/project/var/sqlite/G2C.db. The easiest way to enable persistence is to configure a persistent volume mapping for this file.

This is an example of mounting a volume for this file, please replace the path /path/to/host to a valid path in your system.

Note that if you are working on Windows, the host mounting path needs to be adapted.

docker run  -p 8080:8080 -v /path/to/host/sqlite:/usr/src/app/project/var/sqlite LINKURIOUS_PRIVATE_REGISTRY/linkurious/linkurious-entity-resolution:1.1.0

Please refer to the docker documentation to learn how to configure named volumes. You can also configure another database vendor, more info in the "Persistence for production use" section.

Production setup

In production, it is required to configure persistence, and strongly recommended to enable authentication and use private networking.

Persistence for production use

In production, we recommend setting up persistence using MySQL or MSSQL. To configure persistence, you need to set environment variables when starting the linkurious-entity-resolution docker container.

MySQL

Example configuration for MySQL:

SENZING_DATABASE_VENDOR: 'mysql'
SENZING_DATABASE_HOST: '127.0.0.1'
SENZING_DATABASE_PORT: '3306'
SENZING_DATABASE_USER: 'my-database-user'
SENZING_DATABASE_NAME: 'my-database-name'
SENZING_DATABASE_PASSWORD: 'my-database-password'

MSSQL

SENZING_DATABASE_TRUST_CERTIFICATE is optional, and only supported on MSSQL. When set to true, connecting to the database using a self-signed certificate is allowed. It is recommended to set this variable to false in production.

Example configuration for MSSQL:

SENZING_DATABASE_VENDOR: 'mssql'
SENZING_DATABASE_HOST: '127.0.0.1'
SENZING_DATABASE_PORT: '1433'
SENZING_DATABASE_USER: 'my-database-user'
SENZING_DATABASE_NAME: 'my-database-name'
SENZING_DATABASE_PASSWORD: 'my-database-password'
SENZING_DATABASE_TRUST_CERTIFICATE: 'true'

Authentication

You can enable authentication to make sure that API calls to the Entity Resolution service are only accepted if the call contains an API Key.

To enable authentication:

  1. Start the linkurious-entity-resolution docker container with a LINKURIOUS_ENTITY_RESOLUTION_API_KEY environment variable (the key must be at least 32 characters long).
  2. In Linkurious Enterprise, in the Global Configuration, edit the Entity Resolution section to use the same API Key:
    {
      "enabled": true,
      "url": "http://my-linkurious-entity-resolution-server.svc:8080",
      "serviceApiKey": "your api key here"
    }
    

Networking

The docker image exposes the port 8080 for HTTP connections, but you can use another port via docker mapping. Please visit the docker documentation to learn how publish the ports of a container.

In production, we strongly advise you to use a private network between Linkurious Enterprise and the Entity Resolution service.