背景:我一直在使用neo4j及其Cypher查询,直到现在,并希望移至Apache TinkerPop来支持多个图形db。
在Cypher查询语言中我要找到我的朋友,我会写这个查询。
MATCH (you {name:"You"})-[:FRIEND]->(yourFriends)
RETURN you, yourFriends
现在,我正在寻找一种类似于我的代码中已经编码的查询语言,以与Gremlin合作
从我看来,gremlin具有一个脚本,例如" g.v(12(.oute('nown nown'(。inv ",但这与SQL语法并不相似,这就是我正在寻找。
注意:我不是在寻找SQL连接,我只是在寻找一个 SQL喜欢脚本
tldr;
您问题的简短答案是,对于启用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的迁移,可以在此处找到:SQL2Gremlin