Skip to content

Instantly share code, notes, and snippets.

@richardbutler
Last active January 4, 2016 20:00
Show Gist options
  • Save richardbutler/8671505 to your computer and use it in GitHub Desktop.
Save richardbutler/8671505 to your computer and use it in GitHub Desktop.
Node Neo4j Indexing
var neo4j = require('neo4j'),
async = require('async');
var db = new neo4j.GraphDatabase('http://localhost:7474');
function createIndex(done) {
db.createNodeIndex('programmers', {}, done);
}
function createNode(done) {
var node = db.createNode({
name: 'Frank'
});
node.save(function(err, node) {
if (err) return done(err);
console.log('Saved', node.id);
addNodeToIndex(node, done);
});
}
function addNodeToIndex(node, done) {
node.index('programmers', 'name', 'frank', done);
}
function readIndex(done) {
db.queryNodeIndex('programmers', 'name:*', function(err, data) {
if (err) return done(err);
console.log('Got indexed node', data[0].data.name);
done();
});
}
async.series([
// Create the index 'programmers'
createIndex,
// Create a chap called Frank, and add him to the index
createNode,
// Read back the members of the index
readIndex
], function(err) {
if (err) {
// Arse
console.log('Error', err);
} else {
// Woohoo, donuts!
console.log('Complete');
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment