首页 > 解决方案 > 使用 Gremlin Javascript 在 JanusGraph 中创建和查询 Geopoint

问题描述

我找不到使用 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的方法是什么?

标签: javascriptgremlinjanusgraphgremlin-server

解决方案


作为GeoshapeJanusGraph 的一个特性,TinkerPop(以及 Gremlin)本身并不支持这样的特性。您将不得不依靠 JanusGraph 来提供该功能,并且到目前为止,我认为他们没有为此提供 Javascript 扩展。不过,作为一个示例,您可以看到他们的.NET 库中提供了此类支持。

Geoshape目前,在 Javascript 中进行基于查询的唯一解决方法是将脚本提交到 Gremlin Server,这使您可以访问Geoshape服务器上的 Java 类。


推荐阅读