Skip to content

Instantly share code, notes, and snippets.

@creepone
Created April 23, 2013 13:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save creepone/5443741 to your computer and use it in GitHub Desktop.
Save creepone/5443741 to your computer and use it in GitHub Desktop.
some basic neo4j access from node
var neo4j = require('neo4j');
var db = new neo4j.GraphDatabase('http://localhost:7474');
// an example of input
var data = [{"sentence":"Jetzt kann ich es testen.","words":[{"text":"Jetzt","baseForm":"jetzt","occurences":[{"start":0,"length":5}]},{"text":"kann","baseForm":"könenn","occurences":[{"start":6,"length":4}]},{"text":"ich","baseForm":"ich","occurences":[{"start":11,"length":3}]},{"text":"es","baseForm":"es","occurences":[{"start":15,"length":2}]},{"text":"testen","baseForm":"testen","occurences":[{"start":18,"length":6}]},{"text":".","baseForm":"","occurences":[{"start":24,"length":1}]}],"language":"de"},{"sentence":"Now I can test it.","words":[{"text":"Now","baseForm":"now","occurences":[{"start":0,"length":3}]},{"text":"I","baseForm":"I","occurences":[{"start":4,"length":1}]},{"text":"can","baseForm":"can","occurences":[{"start":6,"length":3}]},{"text":"test","baseForm":"test","occurences":[{"start":10,"length":4}]},{"text":"it","baseForm":"it","occurences":[{"start":15,"length":2}]},{"text":".","baseForm":"","occurences":[{"start":17,"length":1}]}],"language":"en"}];
data.forEach(function (d) {
var luceneQuery = [
"sentence:",
JSON.stringify(d.sentence),
" AND language:",
JSON.stringify(d.language)
].join("");
db.queryNodeIndex("sentences", luceneQuery, function (err, result) {
if (err) {
console.log(err);
return;
}
if (result.length == 0) {
var node = db.createNode({ sentence: d.sentence, language: d.language });
node.save(function (err, result) {
if (err) {
console.log(err);
return;
}
node.index("sentences", "sentence", d.sentence, function (err, result) {
if (err) {
console.log(err);
return;
}
});
node.index("sentences", "language", d.language, function (err, result) {
if (err) {
console.log(err);
return;
}
});
});
}
if (result.length > 0) {
console.log(result[0].data);
// we already have a sentence like this, so let's reuse it
// todo: should we remove the usages before we insert new ones ?
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment