1

我正在编写 python 脚本来从多个来源中提取数据并将其以某种结构放入图表中。

我正在为所有数据使用灯泡模型。我有所有相关节点类型和关系的模型。我的边缘模型除了“标签”之外没有其他属性。

由于它在开发中,我多次运行相同的脚本。我get_or_create用来防止重复节点,但边缘没有这种方法。我没有现有边缘的对象,因为它是在脚本的先前运行中创建的。

我看到几个问题与 espeed这样的答案谈论类似的事情,但我无法为我的具体问题找到令人满意的答案。

这种方法最简单的代码是什么?

目前我正在尝试通过加载 gremlin 脚本来做到这一点;正如斯蒂芬所建议的那样;具有以下功能:

def is_connected(parent, child, edge_label) {
    return g.v(parent).out(edge_label).retain([g.v(child)]).hasNext()
}

以及下面的python代码。

g.scripts.update('gremlin_scripts/gremlin.groovy')
script = g.scripts.get('gremlin:is_connected')
params = dict(parent=parent_node.eid, child=menu_item_v.eid, edge_label='has_sub_menu_item')
response = g.gremlin.execute(script, params)

我不太清楚如何将 bool 结果输入 python。我也试过 g.gremlin.query(script, param)

4

1 回答 1

0

这是一种方法:

parent_v.out(rel_label).retain(child_v).hasNext()

因此,从父级遍历out所有子级(我假设“out”是您关系的方向 - 您如何选择实现特定于您的域的方式)并确定该子级是否存在于任何时候通过retain.

于 2015-03-26T10:11:24.430 回答