Создание и запрос Geopoint в JanusGraph с помощью Gremlin Javascript - PullRequest
0 голосов
/ 15 июня 2019

Я не могу найти способ создать вершину, которая содержит Geopoint, с помощью клиента gremlin javascript (3.4.2).

Схема, определенная для свойства, следующая:

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));

Проблема в том, что я не могу найти этот тип 'Geoshape' нигде с помощью клиента gremlin. Я также пытался использовать в качестве значения свойства GeoJSON и объект типа '{lat: 45.848, lng: 16.487}', но ни один из них не работал.

Какой способ создания и запроса Geoshape.point для JanusGraph с использованием javascript?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Поскольку Geoshape является функцией JanusGraph, TinkerPop (и, следовательно, Gremlin) изначально не поддерживает такую ​​функцию.Вы должны полагаться на JanusGraph, чтобы обеспечить эту функциональность, и на данный момент я не думаю, что они предоставляют расширение Javascript для этого.Однако в качестве примера вы можете видеть, что такая поддержка предоставляется в их .NET library .

В настоящее время единственным обходным решением для выполнения запросов на основе Geoshape в Javascript является отправка сценариев на Gremlin Server, который предоставляет вам доступ к классу Geoshape Java на сервере.

0 голосов
/ 17 июня 2019

Начиная с ответа @stephen mallette, это невозможно сделать с помощью клиента gremlin. Но я нашел хороший обходной путь благодаря этой книге Кельвина Лоуренса .

...