Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I connect to a remote Neo4j database using gremlin python?

From what I've read Neo4j implements apache tinkerpop which leads me to think I can use gremlin python and rather than connect to a gremlin server I can point the python code at a neo4j server and treat it like a gremlin server.

However I can't find any information online which shows how to do this so I'm thinking maybe I've misunderstood something.

  • a) Can I use gremlin python directly with a neo4j db instance?
  • b) If yes to (a) then how?

Thanks

Alex

like image 684
Alex Ward Avatar asked Dec 16 '17 08:12

Alex Ward


1 Answers

You can not connect gremlin-python to Neo4j Server. gremlin-python contains drivers that connect to Gremlin Server so you must have that installed for gremlin-python to work. Given that you need Gremlin Server you must choose one of the following options all of which are just Gremlin Server configurations:

  1. Configure Neo4j in embedded mode within Gremlin Server. An example of this is here where that file points to a Neo4j configuration file. Note that these files are packaged in the Gremlin Server distribution as samples so you can run them directly quite easily.
  2. Modify the aforementioned Neo4j configuration file to run Neo4j in HA mode effectively turning Gremlin Server into a node in the Neo4j cluster.
  3. Configure a neo4j-gremlin-bolt instance which will use the Neo4j Bolt protocol to connect to the running Neo4j Server. While I"m not completely familiar with this implementation, I can see that you would change the gremlin.graph to com.steelbridgelabs.oss.neo4j.structure.Neo4JGraph and that you would discern Bolt configuration options from this class (which instantiates that graph instance).

Once you've chosen one of those configuration options you can then use gremlin-python to work with Neo4j.

like image 56
stephen mallette Avatar answered Sep 30 '22 06:09

stephen mallette