I'm trying out a lot of cypher queries on my neo4j database and have found the web based console to be a bit clumsy.
The neo4j console is more useful ,but I am not sure how to point it at my own database/dataset.
Is there a nice desktop client or tool to run cypher queries on as well as manage a neo4j database, akin to the SQL management studio?
I'd like to avoid using the web admin if possible.
When you start a neo4j server it also spins up a wed-based admin tool that allows you to submit adhoc queries via a tool and see the results. Just go to your server's URL in your web browser.
There is also a decent visualization tool called Neoclipse. It's got some small bugs and a bit of a learning curve but it's pretty decent.
Related
We currently use gremlin.net library in a net core 3.0 application to connect to Azure Cosmos db. We would like to connect to neo4j.
Can we use same gremlin.net library for neo4j? Assuming gremlin
server is installed.
Will Neo4j.Driver library support gremlin
queries? What exact library to use?
Any code sample to connect and
create a node in neo4j using gremlin library for a .net core 3.0
application?
Is neo4j really a better graph model than Azure cosmos?
Can we use same gremlin.net library for neo4j? Assuming gremlin server is installed.
Yes, assuming you mean Gremlin.Net and yes, Gremlin Server should be installed hosting neo4j.
Will Neo4j.Driver library support gremlin queries? What exact library to use?
I don't think that's possible. Neo4j drivers will support Cypher based queries, not Gremlin.
Any code sample to connect and create a node in neo4j using gremlin library for a .net core 3.0 application?
The beauty of Gremlin is that the code examples for one graph database are the same for any other and for the most part, Gremlin in Java is the same as Gremlin in .NET or any other programming language (aside from changes that make Gremlin more ergonomic to the programming language itself). So, if you want to create a node then it's always going to be:
using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource;
var g = Traversal().WithRemote(
new DriverRemoteConnection(new GremlinClient(new GremlinServer("localhost", 8182))));
g.AddV("person").Property("name","Bob").Iterate();
Is neo4j really a better graph model than Azure cosmos?
My personal opinion is that you try them both and determine which is better for yourself given you requirements. That is the choice that Apache TinkerPop and Gremlin help to give you in that you can try lots and lots of different graph systems out there to find the one best suited to your needs.
as I was wandering in the Web looking for a Gremlin implementation for Neo4j I found these two possible solutions:
https://github.com/thinkaurelius/neo4j-gremlin-plugin
http://tinkerpop.incubator.apache.org/docs/3.0.2-incubating/#neo4j-gremlin
Does anybody know what is the difference between the two in practice?
I saw that 1. is a Neo4j plugin while it's not really clear to me what the second is, and if it would lock the entire database thus not allowing other connections (I noticed that it requires the path to the data folder).
Which one is preferred in the neo4j community?
Cheers,
Alberto
I'm not sure there's really a difference as there isn't a direct comparison to be made. The second link is to the TinkerPop project and specifically to the Neo4j implementation of TinkerPop APIs. It runs in an embedded mode and does not yet have support for HA (though we hope to have that soon). The Neo4j implementation can be run in Gremlin Server which let's you send Gremlin to it as a REST, websockets, etc endpoint.
The project in the first link you provided uses that implementation to allow you to send Gremlin to Neo4j Server - so the first project depends on the second.
Your rule of thumb should be activity in the source code.
neo4j-gremlin-plugin has 3 commits this year - https://github.com/thinkaurelius/neo4j-gremlin-plugin/commits/master
tikerpop is much more active - https://github.com/apache/incubator-tinkerpop/commits/master/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j
neo4j-gremlin-plugin
Extending existing Neo4j server with support for Gremlin Query Language.
TinkerPop Neo4j-Gremlin
Extending Gremlin console with support for Neo4j server.
I am trying to improve neo4j reading capabilities by not going through the REST API. It looks like I could improve performances by using websockets. It looks like this article is working on improving performance in embeded databases.
Is a similar endpoint available in the server version (can't find anything on it) ?
I may not have access to the neo4j server per say --> why I need it out of the box or as an extension.
I did some experiments with using websockets & cypher which was pretty straightforward: https://github.com/jexp/cypher_websocket_endpoint
And for instance http://structr.org supports Websockets on top of Neo4j out of the box.
I've been working on a project that involves graph database and I used Neo4j as a tool.
Since, I am on the verge of completing the project, I was thinking of integrating it with big data.
Is there any way of integrating or connecting them, any current real world examples which uses that combo?
Take a look at this blog post about Mazerunner for Neo4j: http://www.kennybastani.com/2014/11/using-apache-spark-and-neo4j-for-big.html
It's still experimental and installation requires a VM deployment. It uses Apache Spark and HDFS to run PageRank and import the results back into Neo4j.
More graph algorithms will be added over time.
I am considering Neo4J for some project. I recall reading somewhere that multi-document ACID transactions are only supported for embedded database, but not for the standalone one. Searching at the Neo4J site, I could not find any info about this. Some more information about this, or some pointers could help. Thank you.
Neo4j itself supports now transactions over the wire with 2.0
See: http://docs.neo4j.org/chunked/milestone/rest-api-transactional.html
Spring Data Neo4j does not yet and it will take a while until we get there, as it means to rewrite the core to use cypher throughout which it doesn't do now.