Skip to content

Instantly share code, notes, and snippets.

View spmallette's full-sized avatar

stephen mallette spmallette

View GitHub Profile
package org.apache.tinkerpop.gremlin.util;
import org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.VertexStep;
gremlin> g.V().hasLabel('person').order().by('name').store('x').by('age').project('name','running').by('name').by(select('x').mean(local))
==>[name:josh,running:32.0]
==>[name:marko,running:30.5]
==>[name:peter,running:32.0]
==>[name:vadas,running:30.75]
gremlin> g.V().hasLabel('person').aggregate('results').profile('profile').cap('results','profile').next()
==>profile=Traversal Metrics
Step Count Traversers Time (ms) % Dur
=============================================================================================================
gremlin> g.V('1','2','3').aggregate('a').has(T.id,'1').
repeat(out().where(P.without('a')).aggregate('a')).emit().
select('a')
==>[v[1],v[2],v[3],v[4]]
==>[v[1],v[2],v[3],v[4],v[5]]
gremlin> g.V('1','2','3').aggregate('a').has(T.id,'1').
repeat(out().where(P.without('a')).aggregate(global,'a')).emit().
barrier().
g.mergeV([(T.label):'Dog', name:'Max']).option(onCreate, [alias: 'Maximus', city: 'Boston'], set)
// 3.7.2-SNAPSHOT
gremlin> g.mergeV([(T.label):'Dog', name:'Max']).option(onCreate, [alias: 'Maximus', city: 'Boston'], set)
==>v[0]
gremlin> g.V().valueMap()
==>[city:[Boston],name:[Max],alias:[Maximus]]
gremlin> g.V().properties()
==>vp[city->Boston]
==>vp[name->Max]
// * Improved performance of the application of `FilterRankingStrategy` for large traversals with deeply nested traversals by improving the cache operation.
g.V().as("n").
where(__.or(__.select("n").hasLabel("software"), __.select("n").hasLabel("person"))).
select("n").by("name")
before
FilterRankingStrategy [O] [GraphStep(vertex,[])@[n], TraversalFilterStep([OrStep([[SelectOneStep(last,n,null), HasStep([~label.eq(software)])], [SelectOneStep(last,n,null), HasStep([~label.eq(person)])]])]), SelectOneStep(last,n,value(name))]
after
https://discord.com/channels/838910279550238720/1191149924256071853/1191149924256071853
gremlin> g = TinkerFactory.createModern().traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().
......1> emit(__.loops().is(gte(1))).
......2> repeat(__.bothE().otherV()).times(2).as('x').
......3> emit(__.loops().is(gte(1))).
......4> repeat(__.inE().outV()).times(2).
......5> bothE().
......6> dedup().by(__.path()).
......7> otherV().
g.V('44').repeat(local(outE('route').sample(1).inV())).times(3).path().by('code').by('dist')
gremlin> g = traversal().withRemote(DriverRemoteConnection.using("localhost",8182,"g"))
==>graphtraversalsource[emptygraph[empty], standard]
gremlin> g.V()
gremlin> t = g.addV('zoo');[]
gremlin> t.iterate()
gremlin> t.iterate()
gremlin> t.iterate()
gremlin> t.iterate()
gremlin> t.iterate()
gremlin> t.iterate()
gremlin> g.inject([1,2],[1,2,3],[1,3],[1,2,3]).dedup().by(union(limit(local,1), tail(local)).fold())
==>[1,2]
==>[1,2,3]
gremlin> g.inject([1,2],[1,2,3],[1,3],[1,2,3]).dedup().by(project('p1','p2').by(limit(local,1)).by(tail(local)))
==>[1,2]
==>[1,2,3]