Skip to content

Instantly share code, notes, and snippets.

@espeed
espeed / gremlin.yaml
Created November 24, 2011 00:50
Gremlin: Create Automatic Index & Create Indexed Vertex
create_automatic_index: |
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
keys = $keys
if (keys != null)
keys = slurper.parseText(keys)
public abstract class $domain_class implements Vertex {}
index = g.createAutomaticIndex('ideas',Idea.class,keys)
create_indexed_vertex: |
@espeed
espeed / create_automatic_indexed_vertex.groovy
Created December 6, 2011 23:46
Gremlin: Create Automatic Indexed Vertex
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
data = slurper.parseText('{"age":34,"name":"James"}')
elementIndex = g.idx('people')
verticesIndex = g.idx('vertices')
g.setMaxBufferSize(0)
g.startTransaction()
vertex = g.addVertex(data)
AutomaticIndexHelper.addElement(elementIndex,vertex)
AutomaticIndexHelper.addElement(verticesIndex,vertex)
@espeed
espeed / create_automatic_vertex_index.groovy
Created December 6, 2011 23:52
Create Automatic Vertex Index
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
keys = null
if (keys != null)
keys = slurper.parseText(keys)
public abstract class People implements Vertex {}
index = g.createAutomaticIndex('people',People.class,keys)
@espeed
espeed / gremlin-neo4j.yaml
Created December 9, 2011 09:22
Gremlin YAML Transaction Example
outE: |
g.v($_id).outE($label)
inE: |
g.v($_id).inE($label)
bothE: |
g.v($_id).bothE($label)
outV: |
@espeed
espeed / element.py
Created December 9, 2011 09:26
Bulbs Vertex Class
class Vertex(Element):
"""A container for Vertex elements returned by the resource."""
def outE(self,label=None):
"""Return the outgoing edges of the vertex."""
params = dict(_id=self._id,label=label)
script = self._resource.scripts.get('outE',params)
return self.gremlin(script)
def inE(self,label=None):
@espeed
espeed / update_indexed_vertex.groovy
Created December 9, 2011 19:34
Gremlin YAML String Replacement
import groovy.json.JsonSlurper
def slurper = new JsonSlurper()
keys = data = null
if ('null' != 'null')
keys = slurper.parseText('null')
if ('{"age":35,"name":"James Thornton"}' != 'null')
data = slurper.parseText('{"age":35,"name":"James Thornton"}')
vertex = g.getRawGraph().getNodeById(9)
manager = g.getRawGraph().index()
index = manager.forNodes('test_idxV')
@espeed
espeed / optimized.groovy
Created December 10, 2011 00:20
Gremlin Script Optimized for Script Engine
manager = g.getRawGraph().index()
index = manager.forNodes(index_name)
g.setMaxBufferSize(0)
g.startTransaction()
vertex = g.getRawGraph().createNode()
for (entry in data.entrySet()) {
if (entry.value == null) continue;
vertex.setProperty(entry.key,entry.value)
if (keys == null || keys.contains(entry.key))
index.add(vertex,entry.key,entry.value)
@espeed
espeed / gremlin-request.bash
Created December 10, 2011 00:21
Gremlin Script Engine Request
POST url: http://localhost:7474/db/data/ext/GremlinPlugin/graphdb/execute_script
POST body: {"params":{"keys":["name"],"index_name":"test_idxV","data":{"age":34,"name":"James Thornton"}},"script":"manager = g.getRawGraph().index()\nindex = manager.forNodes(index_name)\ng.setMaxBufferSize(0)\ng.startTransaction()\nvertex = g.getRawGraph().createNode()\nfor (entry in data.entrySet()) {\n if (entry.value == null) continue;\n vertex.setProperty(entry.key,entry.value)\n if (keys == null || keys.contains(entry.key))\n index.add(vertex,entry.key,entry.value)\n}\ng.stopTransaction(TransactionalGraph.Conclusion.SUCCESS)\nreturn vertex\n"}
@espeed
espeed / scoped.groovy
Created December 10, 2011 02:11
Scoped Groovy
def create_indexed_vertex(data,index_name,keys) {
manager = g.getRawGraph().index()
index = manager.forNodes(index_name)
g.setMaxBufferSize(0)
g.startTransaction()
vertex = g.getRawGraph().createNode()
for (entry in data.entrySet()) {
if (entry.value == null) continue;
vertex.setProperty(entry.key,entry.value)
if (keys == null || keys.contains(entry.key))
@espeed
espeed / trycatch.groovy
Created December 10, 2011 02:48
Try/Catch Method Definition for Gremlin Extension
try {
return create_indexed_vertex(data,index_name,keys)
} catch (e) {
def create_indexed_vertex(data,index_name,keys) {
manager = g.getRawGraph().index()
index = manager.forNodes(index_name)
g.setMaxBufferSize(0)
g.startTransaction()
vertex = g.getRawGraph().createNode()
for (entry in data.entrySet()) {