Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to implement full text search using AWS Neptune as the source

I've seen on other questions that Gremlin & Neptune do not support full text search natively.

How can I provide this feature as part of my web-site?

Ideally it would be not require running up more infrastructure/software that I have to look after.

Thinking that some options are using an external search service like Solr or ElasticSearch. What about another AWS service? Cloudsearch?

thanks

like image 224
James Render Avatar asked Oct 14 '25 18:10

James Render


1 Answers

Your question is very timely. Integration between Amazon Neptune and ElasticSearch was just launched [1]. As you add data to a graph, Neptune will automatically keep an ElasticSearch index up to date using the Streams feature. This is similar in approach to what you were considering building but with the added advantage that you can access the index directly from your graph queries rather than needing to write wrapper code that calls the index and then calls Neptune. You can use the ElasticSearch index in your Gremlin and/or SPARQL queries by simply including some "magic" strings in the query that will tell Neptune to use the ElasticSearch index rather than its own internal indices. You have control over things like which ElasticSearch query API a given Gremlin/SPARQL query should use. Instructions on how to setup the environment, which does not take long are included at the same link [1]. Hopefully this will help with your use case. As a side note, another benefit of the feature is that, when working with Gremlin, you do not need a specially modified client library to take advantage of these new capabilities.

[1] https://docs.aws.amazon.com/neptune/latest/userguide/full-text-search.html

like image 184
Kelvin Lawrence Avatar answered Oct 19 '25 17:10

Kelvin Lawrence