Я импортировал график и могу подтвердить, что число вершин и ребер соответствует числу, которое должно присутствовать. Я запускаю на графике вычисления simplepath (), и мой первый вопрос заключается в том, как получить доступ к массиву путей или карте, что бы там ни было, я думаю, что понимаю, добавляя .toList и выводя его на консоль, однако я просто получаю [] пустой массив?
Что я делаю неправильно, мне нужен доступ к результирующему набору, который возвращается по пути?
Мой запрос, который выполняется в Java, а не в консоли Gramlin:
g.V().has("id", "FirstVertexIdValue").shortestPath().with(ShortestPath.target, __.has("id", "EndVertexIdValue")).with(ShortestPath.distance, "weight").toList();
Я также запускаю следующее и по-прежнему возвращаю пустой массив:
g.V("startVertexId").out().simplePath().until(hasId("endVertexId").path().limit(1);
ответ, когда напечатано systemOut, равно []
, кроме того, graphml do c образец здесь, это довольно большая задача c, поэтому я только что включил 2 вершины и 2 ребра:
<?xml version='1.0' encoding='utf-8'?>
<graphml xmlns='http://graphml.graphdrawing.org/xmlns' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://graphml.graphdrawing.org/xmlns http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd'>
<key attr.name='weight' attr.type='double' for='edge' id='weight' />
<key attr.name='edgeid' attr.type='string' for='edge' id='edgeid' />
<key attr.name='alpha' attr.type='string' for='edge' id='alpha' />
<key attr.name='intendedpathlonlat' attr.type='string' for='edge' id='intendedpathlonlat' />
<key attr.name='levelid' attr.type='string' for='edge' id='levelid' />
<key attr.name='type' attr.type='string' for='edge' id='type' />
<key attr.name='relatedroutes' attr.type='string' for='node' id='relatedroutes' />
<key attr.name='description' attr.type='string' for='node' id='description' />
<key attr.name='title' attr.type='string' for='node' id='title' />
<key attr.name='on_finish_route' attr.type='string' for='node' id='on_finish_route' />
<key attr.name='on_starting_route' attr.type='string' for='node' id='on_starting_route' />
<key attr.name='level_id' attr.type='string' for='node' id='level_id' />
<key attr.name='waypoint_type' attr.type='string' for='node' id='waypoint_type' />
<key attr.name='name' attr.type='string' for='node' id='name' />
<key attr.name='lon' attr.type='string' for='node' id='lon' />
<key attr.name='lat' attr.type='string' for='node' id='lat' />
<graph edgedefault='directed' id='Station'>
<node id='L08-022'>
<data key='lat'>40.69330963</data>
<data key='lon'>-73.98752537</data>
<data key='name' />
<data key='waypoint_type'>escalator</data>
<data key='level_id'>1080000</data>
<data key='on_starting_route' />
<data key='on_finish_route' />
</node>
<node id='L08-023'>
<data key='lat'>40.69318355</data>
<data key='lon'>-73.98755793</data>
<data key='name' />
<data key='waypoint_type'>stairs</data>
<data key='level_id'>1080000</data>
<data key='on_starting_route' />
<data key='on_finish_route' />
</node>
<edge source='WL10-054' target='L10-029'>
<data key='type'>floor</data>
<data key='weight'>4.22</data>
<data key='levelid'>1100000</data>
<data key='intendedpathlonlat'></data>
<data key='alpha'>0.0</data>
<data key='edgeid'>RL10-059</data>
</edge>
<edge source='WL10-054' target='WL10-053'>
<data key='type'>floor</data>
<data key='weight'>5.69</data>
<data key='levelid'>1100000</data>
<data key='intendedpathlonlat'></data>
<data key='alpha'>0.0</data>
<data key='edgeid'>RL10-060</data>
</edge>
</graph>
</graphml>
Пример запроса:
gremlin> g.V().has('T.id', 'L00-041').shortestPath().with(ShortestPath.target, __.has('T.id', 'L04-070')).with(ShortestPath.distance, 'weight').toList()
gremlin> g.V().has('T.id', 'L04-070').out().values('waypoint_type').fold()
==>[]
gremlin> g.V().has('T.id', 'L04-070').out().fold()
==>[]
gremlin> g.V().has('T.id', 'L04-070').out().values('lat').fold()