Search index: Azure Search
Azure search is the recommended full-text search solution for Cosmos DB.
Azure search integration
Linkurious Enterprise requires an index on nodes to enable full-text search. If you do not have a configured index yet, you can create one via the Azure portal.
The following conditions must be met on the index, for Linkurious Enterprise to be able to use it for search:
- the
labelfield must be marked asfilterable; - the property declared in
graphdb.primaryKeymust be marked asretrievable; - the "id" property must be marked as
retrievable.
⚠️ Any data transformation (e.g. base64 encoding) during the indexing process is not supported as this will cause the retrieval of unexpected data and might break the search feature.
Additionally, you can create an index on edges if you want search them as well with Linkurious Enterprise.
Configuration
To edit the AzureSearch data-source configuration,
you can either use the Web user-interface
or edit the configuration file located at linkurious/data/config/production.json.
Example configuration:
{
"dataSources": [
{
"graphdb": {
"vendor": "cosmosDb",
"url": "https://your-service.gremlin.cosmosdb.azure.com:443/",
"database": "your-graph-database",
"collection": "your-collection",
"primaryKey": "your-account-primary-key"
},
"index": {
"vendor": "azureSearch",
"url": "https://your-search-service.search.windows.net",
"apiKey": "your-search-service-admin-api-key",
"nodeIndexName": "your-node-index-name",
"edgeIndexName": "your-edge-index-name"
}
}
]
}
Supported index options with Azure search:
url(required): URL of the search serviceapiKey(required): Primary Admin Key of the search servicenodeIndexName(required): Name of the node index of your graph databaseedgeIndexName(optional): Name of the edge index of your graph database
Please refer to the Azure search online documentation for details on how to load data into Azure search.
Note that today, in Azure Search, it's not possible to search on numbers or dates. If you are interested in this feature, please get in touch.