Search index: Neptune Search
The Neptune Search integration is the preferred option for providing full-text search with Amazon Neptune.
This integration uses Amazon OpenSearch in combination with Neptune-to-OpenSearch replication to provide an always-up-to-date search index in Linkurious Enterprise.
Usage
We recommend using the Neptune Search integration because the standard "Elasticsearch" integration has the following limitations with Amazon Neptune:
- Not scalable: if your graph contains more than a few thousand nodes, indexing will be instable and might fail.
- Not always up to date: if your data in Amazon neptune changes, you have to manually refresh the search index by using the "Start indexing" button in the admin interface.
Versions 1.3+
and 2.x
of OpenSearch have been tested to work for this integration
(see details about supported versions).
Data-source configuration
When configuring Neptune Search the following options are available:
vendor
: must beneptuneSearch
.url
: the OpenSearch domain endpoint URL
Example configuration:
{
"dataSources": [
{
"name": "neptune",
"graphdb": {
"vendor": "neptune",
"url": "https://neptune-instance-name.c2to76ungguf.us-east-1.neptune.amazonaws.com:8182",
"accessKeyId": "AKIATWJHFKUGHEKH665AN",
"secretAccessKey": "xxxxxxxxxxxxxxxxxxxxx"
},
"index": {
"vendor": "neptuneSearch",
"url": "https://opensearch-instance-name.us-east-1.es.amazonaws.com"
}
}
]
}
Setting up Neptune-to-OpenSearch replication
⚠️ Be aware that you should set up the Neptune-to-OpenSearch integration on an empty Neptune graph. If you set up the integration after you already added data to Neptune, existing data will not be automatically synchronized to OpenSearch.
If you already have data in your graph, check out how to export Neptune to OpenSearch
See the AWS documentation for how to set up the Neptune to OpenSearch integration
A simplified guide is provided here as a quick start guide:
- Make sure the IAM role running Neptune can also run queries in OpenSearch
- Enable Neptune streams
- Open the "parameter groups" section in your Neptune console)
- Click the "create new parameter group" button
- Set the "type" to "DB cluster parameter group"
- Click the "edit parameter" button
- Set
neptune_streams
to1
- Save this new parameter group
- Edit your Neptune instance to use the parameter group you just created
- Create an OpenSearch instance
- Open your OpenSearch console
- Create a new OpenSearch instance OpenSearch (version 1.x or 2.x)
- Choose network settings that allow Neptune and OpenSearch to communicate (i.e. same VPC, same subnet)
- Set up the Neptune-to-OpenSearch synchronization
- Choose the region in which to deploy the synchronization job
- Fill in details, as recommended
- Select VPC & subnets so that it can communicate with your Neptune & OpenSearch instances