2015-04-22 17 views
4

shortestPath()函数采用一个方向,因为它是第三个参数。我如何修改函数,使其只能遍历特定类的边?我相信,我可以再补充类作为第二个参数上线106:OrientDB shortestPath()使用特定的边@class?

https://github.com/orientechnologies/orientdb/blob/b21429d600f87193611eed3d33b90d5fb9c2f61e/graphdb/src/main/java/com/orientechnologies/orient/graph/sql/functions/OSQLFunctionShortestPath.java

如果我这样做,但是,我需要从源头上重建?我怎么才能创建一个自定义函数来在我的查询中使用?

+1

你见过[这](http://orientdb.com/docs/last/SQL-Functions.html)?向下滚动到Java__中的__Custom函数。 – vitorenesduarte

+0

我看到了,如果您使用的是javaAPI,但是我希望能够在SQL查询中调用我的自定义函数,这需要我构建自己的插件并将其注册到orientdb-server-config中.xml文件。这涉及更多,并且在文档中没有很好地涵盖。 – mikestaub

+0

在页面的最后有一个例子,它调用使用SQL Query定义的自定义函数。 – vitorenesduarte

回答

3

刚在OrientDB v.2.0.9和2.1中实现。 双方将在未来几天公布,如果你现在想尝试它,你可以从源代码编译(分支“2.0.x版本”和“发展”)

电流的函数的签名是这样的:

shortestPath(<sourceVertex>, <destinationVertex>, [<direction>, [ <edgeTypeAsString> ]])

例如使用

SELECT shortestPath(#12:0, #12:10, null, "MyEdgeClass")