TinkerPOP2用于通过Gremlin.defineStep(..)支持用户定义的步骤
我如何使用Tinkerpop3实现同样的功能?
是否有任何Gremlin API可以创建自定义步骤并组合一组遍历步骤?
任何建议都将受到高度赞赏。
谢谢Kaniska
发布于 2016-07-21 20:12:21
对于TinkerPop 3.x来说,领域特定语言开发的模式还没有完全建立起来,所以随着时间的推移,建议会有一些变化。在gremlin-users mailing list上有这方面的相关信息。
如果您正在使用Gremlin Server (或者可以将Groovy整合到您的项目中),我认为没有理由不做一些groovy元编程来让它工作。使用标准的Gremlin Server zip发行版,编辑generate-aturn.groovy文件,使其在开头包含以下行:
GraphTraversal.metaClass.knows = { delegate.out('knows') }然后使用以下命令启动服务器:
bin/gremlin-server.sh conf/gremlin-server-rest-modern.yaml然后是一个简单的卷曲:
$ curl "http://localhost:8182?gremlin=g.V(1).knows().values('name')"
{"requestId":"66c2c929-9cc2-491d-acb0-ae4d7eef6b00","status":{"message":"","code":200,"attributes":{}},"result":{"data":["vadas","josh"],"meta":{}}}如果您有一个复杂的DSL,您可能不希望所有的逻辑都被困在一个groovy脚本中。足够简单-只需构建一个标准的groovy项目,构造一个jar,包含某种形式的静态初始化器来调用您的元编程代码,并将其放在Gremlin Server的path上。然后你的init脚本只需要调用这个静态初始化器,你的DSL就被加载了。
https://stackoverflow.com/questions/38472636
复制相似问题