As Gremlin currently does not support case-insensitive predicates, I would like to experiment with the performance of running part of my traversal on a remote (in this case, Neptune) that does not support lambda steps, then "transferring" the remainder of the traversal to run locally. Is this possible at all? If so, how do I express "perform this part on the remote, then slurp and run locally"?
Asked
Active
Viewed 177 times
1 Answers
1
If you are using the Java Gremlin client then any subgraph you return using the Gremlin subgraph
step will be returned as a TinkerGraph
object. You can then create a new graph traversal source for that graph and process it locally. I have done this myself in the past when I wanted to cache parts of my graph in local memory.
As an alternative, Neptune does support using an Elastic Search cluster to help with full text search type queries.

Kelvin Lawrence
- 14,674
- 2
- 16
- 38
-
The Neptune/ES integration is not practically workable for startup-sized projects; the administration is complex, and it's hideously expensive for the gain of "case-insensitive prefix search". I'll examine the `subgraph` option, which might be the way to go. – chrylis -cautiouslyoptimistic- Jan 20 '21 at 22:57
-
2Another alternative is to store a second version of your properties with forced case (lower/upper) just for searching. – Taylor Riggan Jan 22 '21 at 14:23
-
1@TaylorRiggan That's the approach I ended up implementing. – chrylis -cautiouslyoptimistic- Feb 02 '21 at 01:40