neo4j

Posts about the Neo4j graphdb (http://neo4j.org/)

Neo4jClient–Bolt Edition

Neo4j 3.x added a new transport protocol called ‘Bolt’ in essence a binary transmission protocol to speed up connectivity to the database, and with a series of official drivers – get everyone on an even keel. Trouble is, changing from Neo4jClient to Neo4j-Driver is a big pain, for two main reasons: 1. You lose all the fluent setup you get with Neo4jClient (Cypher.Match(“”).Where(“”) etc) 2. You lose all the object mapping (.Return(u => u.As<User>())) Some people would be happy to just be ......

DotNetters–it’s time to graph up

I recently wrote an article with Michael Hunger (of Neo4j) about getting your .NET on with Neo4j - http://thenewstack.io/graph-database-neo4j-net-client/ – it’s time guys, it really is time!

Calling Stored Procs in Neo4j using Neo4jClient –the hacky way

Neo4j 3.0 introduced the concept of Stored Procedures, now, whilst they’re not the same as SQL based SPs, they work – and well – it’s what we’ve got! Neo4jClient doesn’t currently have any native way to call a Stored Proc, so to get you there in the interim, we’ll use the ‘apoc.create.uuids’ proc – which returns a GUID (or multiples) and uses both the CALL and YIELD keywords. (Sorry for lack of code highlighting….) var gc = new GraphClient(new Uri("http://localhost:7474/... gc.Connect(); ......

The three stages of *my* database choice

Prologue I write and run a website called Tournr, a site to help people run competitions, it helps them organise and register for competitions, keeping the scores online and taking some of the pain of competition management out for them. I began it due to a badly run competition I attended (and ahem ran) a few years ago – and I wanted to make it better for first-timers (like myself) and old-hands alike. This post is about the database decisions and pains I’ve been through to get where I currently ......

Neo4j.AspNet.Identity is Back!

In fairness, it was never *away*, but after a brief hiatus - it is being developed again. So changes – it’s moved - https://github.com/cskardon... It’s also been repackaged and nuget-ed, the instructions on the Readme have been updated and the actual database structure is better than before, it’s not all there (of course) but I will accept pull requests and any issues, open up on the github page. I’ll try to do some follow up posts with the db structure, but roughly: ......

Neo4jClient now supports JsonProperty for Sending Cypher

So, you want a demo graph, and you fire up Neo4j, go to the admin (http://localhost:7474/) and then run :play movies This gets you a graph to play around with, and so you head into Visual Studio (or maybe even LinqPad), and you have an urge now to get all the movies in the DB released after the year 2000. A compulsion if you will. So you create your class to get the movies: class Movie{ public string Title { get; set; } public int Released { get; set; }} And run the query you’ve been dreaming of ......

Neo4jClient 1.1.0.1

Big milestone this one, Neo4jClient now supports Transactions, Authentication and some other little changes. Transaction info is all here: https://github.com/Readify/... You can find the connecting stuff here (at the bottom): https://github.com/Readify/... And the other big(ish) change is the change to make the ‘CollectAs’ method return the class type specified (<T>) instead of Node<T>. Big thanks for this go to Arturo Sevilla (https://github.com/arturos... ......

Upgrading your Neo4J from XXX to 2.2.0–having authorization trouble?

I’ve recently upgraded one of my Neo4J dbs from 2.1.7 to 2.2.0, and instantly ran into troubles with the new Authentication that the db now has. You’ll notice it when you first login to your browser (http://localhost:7474/) and get asked for a login name and password. Of course, you can turn off authentication via the settings (conf/neo4-server.properties) by changing the ‘dbms.security.auth_enabled’ value to false, but now we’ve got it, we should use it! Luckily neo4jclient already allows us to ......

New Nuget Package for Neo4j Users - Neo4jClient.Extension

The defacto standard for .net users of Neo4j is the Neo4jClient nuget package, if you don’t have that, you’re basically rolling your own connection code, in some cases you might need to, but most of the time, the client will work well. Today I was adding Neo4jClient to a new project, and searched via the Nuget package UI and up popped Neo4jClient.Extension, so, I went to the github repo, read the .md file and thought - I’ll download that bad boy and give it a go. The general gist is to be able to ......

Install Cypher Highlighting into Sublime Text 3

I’ve had Sublime Text (ST) 2 installed now for quite a while, purely because I use the Cypher highlighting package, and whilst I waited for ST3 to have it in the Package manager, it didn’t matter that I had both for a while. But I finally decided to bite the bullet and install Cypher manually into ST3. Step 1. Go to https://github.com/kollhof/... and Download ZIP of the repo. Step 2. Open ST3, and go to ‘Browse Packages’ (CTRL+SHIFT+P then type ‘browse’) Step 3. In the Explorer window, ......

Neo4jClient with LinqPad

Quite often I want to just try out some code, usually useful when answering a question on StackOverflow, but typically these don’t require a full solution, and it’s a bit heavy handed to whip out Visual Studio for a simple create / match query, so what about LinqPad? One of the most awesome tools for a .NET developer (if you haven’t got it, you should get it). I’m going to assume a few things here: You have got Neo4j running and know the url (if you’ve changed it) You have downloaded and installed ......

Error: Unable to access jarfile d:\Databases\Neo4j

Cryptic. I’ve spent a large proportion of time on this, and straight off the bat – NO this is not the ‘windows-jarfile’ error of the old skool days. No, this is a pretty simple issue, my folder structure was: d:\Databases\Neo4j d:\Databases\Neo4j Trie Inside each a copy of the the ‘zip’ contents, with different configuration properties for the various things (ports etc) so I could run multiple copies of Neo4j at the same time. All good. EXCEPT I get this error from the “Neo4j Trie” folder when I ......

Ninjecting Neo4jClient into MVC5/4/3

First, create your new MVC project (or load your existing one!) Then add the Ninject.MVC nuget package: We’ll also want the Neo4jClient package Now we have those two, we can hook it up, first off we need to tell Ninject how to bind to Neo4jClient, I use a Module for this, so add this class to your project (usually I have them in a sub-folder called ‘Modules’ in the App_Start folder – but it can be anywhere):public class Neo4jModule : NinjectModule { /// <summary>Loads the module into the kernel.</summary> ......

Writing Neo4j Console

So, Neo4j Console is now open sourced at: https://github.com/tournr/n... feel free to branch, fix, edit whatever and issue pull requests, or even just have a gander and code review :) I thought I’d write some notes on what I’ve done and why. Let’s split it into 2 main areas, UI and Backend. The UI Extremely simple WPF front end – I mean – it’s only got 3 text boxes! If I’m honest, it’s not what I want – I want to create a console window like the F# console, something which really does act ......

The Neo4j 1.9 to 2.0 Upgrade

So, with Neo4j 2.0 on the near horizon (RC1 out), it seemed appropriate to upgrade all my current codebase from 1.9 to 2.0. Generally, as a rule of thumb, the conversion has been pretty smooth, there are some pre-2.0 gaffs I’ve made which have made it slightly harder than it needed to be – but the ability to use 1.9 cypher in 2.0 db is incredibly useful. So – I’m (as you can probably tell) a .NET developer, which means I use the excellent neo4jclient to perform pretty much all of my interaction with ......

Neo4j Console

Hey Hey Super Early adopters, if you’re using Neo4j and you’re a Visual Studio developer (which probably means I’ve just lot 99% of the audience :)) please try Neo4j Console, it’s an extension for Visual Studio 2013 that allows you to make calls to your local (or remote) server instance of Neo4j. So, once you’ve downloaded it – the question I guess is HOW DO I USE THAT!!!?? Opening It Once installed, it finds itself in the ‘View->Other Windows’ menu, it’s called ‘Neo4j Console’, just like the ......

Another day, another blog post update

Gist: https://gist.github.com/csk... I know! Another question on StackOverflow leads to yet another blog post being updated to use the newer Neo4jClient. So here goes: Darko Micics has written a post about using Neo4jClient with C#.Net, and a question has arisen on StackOverflow asking about how to (in effect) do this in the new version of the Neo4JClient – the version where ‘CreateRelationship’ et al have been marked as obsolete. Luckily, this is a pretty simple (twitter-ish) data set ......

A Clear DB solution for Neo4j 2.0 RC1

The old skool way (pre RC1) of wiping the database was: //Clear DB START n=node(*) MATCH (n)-[r?]-() DELETE n, r Which worked fine for M06 and previous, but, RC1 doesn’t allow optional relationships (using the ? operator) you’ll need to update to: //Clear DB START n=node(*) OPTIONAL MATCH (n)-[r]-() DELETE n, r ......

Using Neo4j with F# – Cypher 2.0

There’s an excellent post by Sergey Tihon about using Neo4j with F#, written back in March, before Neo4j began the progression into Cypher 2.0. (Gist for this here: https://gist.github.com/csk... Some of the benefits of the newer Neo4jClient versions are the general move away from using Node / NodeReferences and going for a more consistent Cypher only approach, so I’ve updated the code by Sergey to use the 2.0 stuff (as part of the process of answering this StackOverflow question). BTW: ......

Neo4JClient – Getting Path Results

So, let’s get this straight off the bat – Craig Brett has written about using the PathResults from Neo4jclient (a .NET REST client to Neo4J), but times have moved on, and there are some specifics I’ve needed to work out with the newer clients (this post – for reference uses Neo4jclient version: 1.0.0.590). The problem I want to get all the nodes and relationships from starting node ‘n’ going out ‘x’ levels. In Cypher – that’s pretty simple: START n = node(2) MATCH p = n-[:RELATION*1..3]-() RETURN ......

Neo4J and Azure and VS2012 and Windows 8

Now, I know that this has been written about, but both of the main places (http://www.richard-banks.o... and http://blog.neo4j.org/2011/... utilise VS2010, and well, I’m on VS2012 and Windows 8. Not that I think Win 8 had anything to do with it really, anyhews! I’m going to begin from the beginning, this is my first foray into running something on Azure, so it’s been a bit of a learning curve. But luckily the Neo4J guys have ......

Getting Neo4j to install as a service on Windows 8 Release Preview x64

In this we get neo4j to install as a service!