使用Gremlin Javascript在JanusGraph中创建和查询Geopoint

时间:2019-06-15 15:23:56

标签: javascript gremlin janusgraph gremlin-server

我找不到使用gremlin javascript客户端(3.4.2)创建包含Geopoint的顶点的方法。

为该属性定义的架构如下:

geopoint=mgmt.makePropertyKey('geopoint').dataType(Geoshape.class).cardinality(org.janusgraph.core.Cardinality.SINGLE).make();

从JanusGraph中阅读文档,我应该能够执行以下操作,无论是用于查询还是创建:

g.addV('location').property('geopoint', Geoshape.point(45.944, 18.485));

问题是我无法使用gremlin客户端在任何地方找到“ Geoshape”类型。我还尝试过使用GeoJSON和类似'{lat:45.848,lng:16.487}'这样的对象作为属性值,但是它们都不起作用。

使用JavaScript为JanusGraph创建和查询Geoshape.point的方法是什么?

2 个答案:

答案 0 :(得分:1)

由于Geoshape是JanusGraph的功能,因此TinkerPop(因此是Gremlin)本身不支持这种功能。您将不得不依靠JanusGraph来提供该功能,到目前为止,我不认为它们提供了Javascript扩展。只是作为一个示例,您可以看到他们的.NET library中提供了这种支持。

您目前唯一的解决方法是使用submit scripts到Gremlin Server,以执行基于JavaScript的Geoshape查询,Gremlin Server使您可以访问服务器上的Geoshape Java类。

答案 1 :(得分:0)

从@stephen槌状回答开始,这无法使用gremlin客户端完成。 但是由于有了book by Kelvin Lawrence,我发现了一个很好的解决方法。