【发布时间】:2021-11-09 13:02:52
【问题描述】:
我尝试使用 Gremlin 和 Tinkerpop 进行以下查询
gremlin> graph = TinkerGraph.open()
==>tinkergraph[vertices:0 edges:0]
gremlin> g = traversal().withEmbedded(graph)
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> v = g.addV().property('name','marko').property('name','marko a. rodriguez').next()
==>v[0]
gremlin> g.V(v).properties('name').count()
==>2
gremlin>
当我使用 Gremlin-Python 和 Janusgraph 运行时,收到以下信息。
>>> v = g.addV().property('name','marko').property('name','marko a. rodriguez').next()
>>> g.V(v).properties('name').count().next()
1
我的问题是,为什么我会收到不同的结果。 在第一种情况下,输出为 2,但在第二种情况下,输出为 1。
我也尝试运行以下查询以进行更多探索,并找到以下结果。
使用 Gremlin 和 TinkerpopGraph
gremlin> g.V(v).values('name')
==>marko
==>marko a. rodriguez
gremlin>
使用 Gremlin-Python 和 JanusGraph
>>> g.V(v).values('name').next()
'marko a. rodriguez'
当我使用 gremlin 和 Janusgraph 尝试以下操作时,它可以工作
gremlin> v = g.addV().property(list,'p_name','marko').property(list,'p_name','marko a. rodriguez').next()
==>v[12344]
gremlin> g.V(v).properties('p_name').count()
==>0
但是在 gremlin-python 中运行相同的结果给了我错误。
>>> v = g.addV().property(list,'p_name','marko').property(list,'p_name','marko a. rodriguez').next()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/process/traversal.py", line 88, in next
return self.__next__()
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/process/traversal.py", line 47, in __next__
self.traversal_strategies.apply_strategies(self)
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/process/traversal.py", line 548, in apply_strategies
traversal_strategy.apply(traversal)
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/driver/remote_connection.py", line 63, in apply
remote_traversal = self.remote_connection.submit(traversal.bytecode)
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/driver/driver_remote_connection.py", line 60, in submit
results = result_set.all().result()
File "/usr/lib/python3.9/concurrent/futures/_base.py", line 440, in result
return self.__get_result()
File "/usr/lib/python3.9/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/driver/resultset.py", line 90, in cb
f.result()
File "/usr/lib/python3.9/concurrent/futures/_base.py", line 433, in result
return self.__get_result()
File "/usr/lib/python3.9/concurrent/futures/_base.py", line 389, in __get_result
raise self._exception
File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/driver/connection.py", line 83, in _receive
status_code = self._protocol.data_received(data, self._results)
File "/home/sumit/.local/lib/python3.9/site-packages/gremlin_python/driver/protocol.py", line 131, in data_received
raise GremlinServerError(message['status'])
gremlin_python.driver.protocol.GremlinServerError: 599: null: .property(ArrayList, String, String)
599: null: .property(ArrayList, String, String)
【问题讨论】:
标签: gremlin janusgraph tinkerpop3 gremlinpython