【问题标题】:Python, bulbs, resxter . Getting bool scalar returned by gremlin script from bulbsPython,灯泡,resxter。从灯泡中获取 gremlin 脚本返回的布尔标量
【发布时间】:2015-05-30 05:34:07
【问题描述】:

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

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

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

我看到几个问题与来自 espeed 的答案(如 this)谈论类似的事情,但我无法为我的具体问题找到令人满意的答案。

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

目前我正在尝试通过加载一个 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)

【问题讨论】:

    标签: python-3.x tinkerpop bulbs


    【解决方案1】:

    这是一种方法:

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

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

    【讨论】:

    • 嗨,斯蒂芬,感谢您的快速回答!你提到的代码,它是指 Gremlin 吗? Bulbs 似乎没有 retain() 方法。我可以设法通过灯泡运行 gremlin 字符串。
    猜你喜欢
    • 2014-09-06
    • 2012-10-29
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多