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
andYOUR_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:
- Start the
linkurious-entity-resolution
docker container with aLINKURIOUS_ENTITY_RESOLUTION_API_KEY
environment variable (the key must be at least 32 characters long). - 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.