将 Neo4j 密码查询转换为 orientdb / gremlin(在 java 中)
Translating a Neo4j cypher query into orientdb / gremlin (in java)
我有一个 Neo4j 密码查询,如下所示:
MATCH
(b:VertexType1)-[e1]-(a:VertexType2)-[e2]-(c:VertexType1)-[e3]-(d)
翻译成英文(我认为)是:
"Find me a chain of vertices 'b','a','c','d' of type 'VertexType1', 'VertexType2', 'VertexType1' and 'VertexTypeAny' in that order connected by any kind of edges 'e1','e2' and 'e3'"
在 java 中使用 OrientDB 和 gremlin 相当于什么?
好像我想从 :
开始
for(Vertex a : orientGraph.getVerticesOfClass("VertexType2")){
}
然后用顶点 'a' 开始我的 gremlin 代码,然后是 'both' 这样我从顶点 'a' 展开直到我确认/否认 a 以这种方式连接我想要的。
最后我想要 Java 中的所有顶点和边,这样我就可以添加/删除边和顶点,所以我有:
OrientVertex a;
OrientVertex b;
OrientVertex c;
OrientVertex d;
OrientEdge e1;
OrientEdge e2;
OrientEdge e3;
java 中的 gremlin 是否可行?
这是您要查找的 gremlin 查询:
g.V().has('@class', T.eq, 'VertexType1').as('b').bothE().as('e1').bothV().as('a').has('@class', T.eq, 'VertexType2').bothE().as('e2').bothV().as('c').has('@class', T.eq, 'VertexType1').bothE().as('e3').bothV().path
我有一个 Neo4j 密码查询,如下所示:
MATCH (b:VertexType1)-[e1]-(a:VertexType2)-[e2]-(c:VertexType1)-[e3]-(d)
翻译成英文(我认为)是:
"Find me a chain of vertices 'b','a','c','d' of type 'VertexType1', 'VertexType2', 'VertexType1' and 'VertexTypeAny' in that order connected by any kind of edges 'e1','e2' and 'e3'"
在 java 中使用 OrientDB 和 gremlin 相当于什么?
好像我想从 :
开始for(Vertex a : orientGraph.getVerticesOfClass("VertexType2")){
}
然后用顶点 'a' 开始我的 gremlin 代码,然后是 'both' 这样我从顶点 'a' 展开直到我确认/否认 a 以这种方式连接我想要的。
最后我想要 Java 中的所有顶点和边,这样我就可以添加/删除边和顶点,所以我有:
OrientVertex a;
OrientVertex b;
OrientVertex c;
OrientVertex d;
OrientEdge e1;
OrientEdge e2;
OrientEdge e3;
java 中的 gremlin 是否可行?
这是您要查找的 gremlin 查询:
g.V().has('@class', T.eq, 'VertexType1').as('b').bothE().as('e1').bothV().as('a').has('@class', T.eq, 'VertexType2').bothE().as('e2').bothV().as('c').has('@class', T.eq, 'VertexType1').bothE().as('e3').bothV().path