Does anybody know
what are the pros and cons of using tinkerpop based graph vs enterprise vendors neo4j or tigergraph
upsert not working properly in specific cases
running in k8s
Serialize custom sack
.sack()
, following error is thrown:
```
2023-02-03 12:40:20 java.lang.IllegalArgumentException: Class is not registered: org.apache.tinkerpop.gremlin.server.jsr223.ScriptData
2023-02-03 12:40:20 Note: To register this class use: kryo.register(org.apache.tinkerpop.gremlin.server.jsr223.ScriptData.class);
2023-02-03 12:40:20 at org.apache.tinkerpop.shaded.kryo.Kryo.getRegistration(Kryo.java:488)...GraphBinaryMessageSerializer
. The format for GraphBinary custom objects is shown here: https://tinkerpop.apache.org/docs/current/dev/io/#_custom There are tests that show how to create a custo...GremlinGroovyScriptEngine to submit bytecode from string vs Client to submit query as string
As far as "fundamental differences" i don't think there are many and I assume you were doing a
Client.submit()
with your bytecode which means you were already dealing with a ResultSet
object for your result so going to scripts should present no difference there....Set TTL for vertex
mgmt = graph.openManagement()
tweet = mgmt.makeVertexLabel('tweet').setStatic().make()
mgmt.setTTL(tweet, Duration.ofHours(36))
mgmt.commit()
mgmt = graph.openManagement()
tweet = mgmt.makeVertexLabel('tweet').setStatic().make()
mgmt.setTTL(tweet, Duration.ofHours(36))
mgmt.commit()
addV with existing ID doesn't throw error
addV(newLabel)
with an existing ID but a different label, it will add the newLabel
and the new properties defined to the existing vertex.
This is verrrry undesirable behavior, I would need to it throw a constrain violation.
Any thoughts?...Concatenating details with specified property key
by()
modulators:
```groovy
g.V().hasLabel('ServiceGroup').
project('id', 'label', 'name', 'services')....using mergeV/E
How to connect to a specific graph on Gremlin Server?
we have a Gremlin Server startup script which uses the ConfiguredGraphFactory to look up the application's graph and which creates it if not yet present.I think that shouldn't be necessary as
ConfiguredGraphFactory
should already create a graph traversal source automatically for every created graph with then name <graph.graphname>_traversal
. But you can of course still do it like that if you want to...Limiting .path() results to a number of valid starting vertices
project()
doesn't need deduplication - just need to unfold()
the collection to get back to the original form:
```gremlin> g.V().project('s','e').
......1> by().
......2> by(out().hasLabel('software').path().fold()).
......3> filter(select('e').unfold())....Gremlin server plugin for running additional function on each vertex edge
TraversalStrategy
that replaces steps that traverse vertex/edge data like out()
or inE()
with your own implementation for those steps. in that way you will have access to the vertex/edge Traverser
as it passes through the step. i suppose you could also consider adding a special step that wraps those steps or follows them depending on your needs. i'm not sure which is best offhand.Option to be a range of values
option(1..100, ...)
...Ciel function in Math step doesn't seem to work
ciel
is mistyped. i believe you want ceil
. the error is stating that math()
does not recognize ciel
as a function essentially and is treating it as a variable. since there is no definition for that it is null
and math()
doesn't like that.Grouping and projections help
group().by('from')
to the end of what you have. as an example with the modern graph:
```gremlin> g.V().project('name','degree').by('name').by(bothE().count())
==>[name:marko,degree:3]
==>[name:vadas,degree:1]
==>[name:lop,degree:3]...Weird Error using inE()
inE()
and placing it inside a by()
is that when you inline Gremlin just follows the edges he finds. so in cases where there is a vertex with no in edges he just stops there and that traverser is filtered away. on the other hand when Gremlin is traversing the same vertex within by()
, the by()
forces Gremlin to traverse...Neptune - multiple labels
Use statement from choose and option that check only if a value has been yielded
identity() on Neptune on a vertex
properties
was placed there with the idea that there was future potential to include actual properties on elements. There is a long history for why we do not yet do that and you can read about it here: https://lists.apache.org/thread.html/e959e85d4f8b3d46d281f2742a6e574c7d27c54bfc52f802f7c04af3%40%3Cdev.tinkerpop.apache.org%3E That said, we are working on finally implementing this functionality which will a...