Gremlin Apache TinkerPop的类SQL查询语言

Gremlin Apache TinkerPop的类SQL查询语言,gremlin,tinkerpop,tinkerpop3,Gremlin,Tinkerpop,Tinkerpop3,背景:我一直在使用和它到现在,并期待着移动到支持多个图形数据库 为了找到我的朋友,我会写下这个查询 MATCH (you {name:"You"})-[:FRIEND]->(yourFriends) RETURN you, yourFriends 现在,我正在寻找一种类似于我的代码中已经编码的查询语言来处理Gremlin 在我看来,Gremlin有一个类似于“g.v(12).outE('knows').inV”的脚本,但这与我正在寻找的SQL语法不同 注意:我不是在寻找SQL连接,我只

背景:我一直在使用和它到现在,并期待着移动到支持多个图形数据库


为了找到我的朋友,我会写下这个查询

MATCH (you {name:"You"})-[:FRIEND]->(yourFriends)
RETURN you, yourFriends
现在,我正在寻找一种类似于我的代码中已经编码的查询语言来处理Gremlin

在我看来,Gremlin有一个类似于“g.v(12).outE('knows').inV”的脚本,但这与我正在寻找的SQL语法不同

注意:我不是在寻找SQL连接,我只是在寻找一个 类SQL脚本

太长,读不下去了 对您的问题的简短回答是,对于支持Tinkerpop的数据库,您需要用Gremlin编写查询,目前还没有类似SQL的语言


细节 Gremlin与SQL和Cypher有许多不同之处,但一个重要的区别在于Gremlin是一种声明性语言,SQL/Cypher是命令式语言。在Gremlin中,您定义了如何遍历图形;在SQL/Cypher中,您定义了所需内容,引擎为您优化了遍历

例如,您上面的密码查询将用Gremlin编写为:

g.V().has('name', 'You')
   .as('you').out('friend')
   .as('yourFriends')
   .select ('you', 'yourFriends')
目前,您需要将您的Cypher查询转换为Gremlin,以处理任意数量的TP数据库,包括JanusGraph、CosmosDB、DSE Graph、AWS Neptune。。。。可以在此处找到所有当前提供程序:


Daniel Kuppitz编写了一个场景,教您如何从编写SQL查询迁移到编写gremlin查询,这里有:

注意gremlin同时具有声明性和命令性特征-请参见
match()
step:@stephenmallette为了简单起见,我确实省略了这一部分,但您完全正确,您可以在Gremlin中执行命令匹配: