我正在编写python脚本,以从多个来源提取数据,并将其放入特定结构的图形中。
我使用灯泡模型来处理所有的数据。我有所有相关节点类型和关系的模型。我的边缘模型没有额外的属性,除了'label‘。
因为它正在开发中,所以我多次运行相同的脚本。我使用get_or_create来防止重复的节点,但是边没有这种方法。我没有现有边的对象,因为它是在脚本的前一个运行中创建的。
我看到几个问题和espeed上的答案类似,比如this,但我找不到一个满意的答案来回答我的具体问题。
这个方法最简单的代码是什么?
目前,我正在尝试通过加载一个gremlin脚本来实现这一点;正如Stephen所建议的;使用以下函数:
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(脚本,参数)
发布于 2015-03-26 18:11:24
这里有一种方法:
parent_v.out(rel_label).retain(child_v).hasNext()因此,从父级开始,遍历out到所有子级(我假设"out“是您关系的方向--您如何选择实现特定于您的域的实现),并通过retain确定该子级是否出现在任何点上。
https://stackoverflow.com/questions/29274439
复制相似问题