Gremlin 在创建的顶点中添加多标签

Gremlin adding multi label in created vertex

我正在尝试在顶点中添加多个标签。我找到了doc这个,这个是在创建节点的时候添加了multi-label。我尝试了一些在创建的顶点中添加多标签的查询。

g.V().has('Test', "title", "test1").next().addLabel('BU1')

但是这个报错

File "/usr/lib/python3.6/concurrent/futures/_base.py", line 432, in result
    return self.__get_result()
  File "/usr/lib/python3.6/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.6/dist-packages/gremlin_python/driver/resultset.py", line 81, in cb
    f.result()
  File "/usr/lib/python3.6/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/lib/python3.6/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/dist-packages/gremlin_python/driver/connection.py", line 77, in _receive
    self._protocol.data_received(data, self._results)
  File "/usr/local/lib/python3.6/dist-packages/gremlin_python/driver/protocol.py", line 106, in data_received
    "{0}: {1}".format(status_code, data["status"]["message"]))
gremlin_python.driver.protocol.GremlinServerError: 597: Cannot invoke method range() on null object

恐怕这些方法在 Python 中行不通。文档应该对此更加清楚(我已经记下了这样做)。从 Python 开始,您只能通过 Gremlin 语言与图表交互(无论您使用何种语言,这是与图表交互的唯一方式)以及 link 中列出的那些方法您提供的 addLabel() 不是 Gremlin 语言的一部分 - 它们恰好特定于 Neo4jGraph 的 Java API。在 python 中添加多个标签的唯一方法是:

g.addV('human::animal')

或者我想您可以向服务器发送脚本以使用文档中的那些 Java API 方法。我想 Neo4j 可以(应该?)公开 Gremlin 语言的扩展(也许使用 with() 步骤,大声思考)。如果您想在 JIRA 中创建一个问题以供进一步讨论,也许可以考虑。