【问题标题】:gremlin-python-gets nodes with greater than two edgesgremlin-python-获取大于两条边的节点
【发布时间】:2020-07-03 20:20:07
【问题描述】:

我目前正在使用 gremlin-python 来研究图形。我想获得所有具有两个以上出边的顶点。我正在使用匿名遍历根据边缘计数过滤掉用户,但下面是我得到的错误。

AttributeError: 'list' 对象没有属性 'out'

我是新手,不知道我在这里做错了什么。这是可用的有限 gremlin-python 教程/文档中描述的方式。

【问题讨论】:

    标签: jupyter-notebook gremlin amazon-neptune gremlinpython


    【解决方案1】:

    如果您可以包含一个代码 sn-p 显示您使用的导入以及查询,那将会很有帮助。你记得在你的 Python 代码中导入这个类吗?

    from gremlin_python.process.graph_traversal import __
    

    我可以使用我的一张图表毫无问题地运行您的查询

    g.V().hasLabel('airport').where(__.out().count().is_(P.gte(2))).count().next()
    

    如果您没有该导入,您将看到与您所看到的错误类似的错误。

    有一个使用 gremlin-python at this location 时最常用的导入列表

    编辑添加:

    正如斯蒂芬在下面的评论中指出的那样,您只需要知道是否至少有两个传出边,您可以通过添加 @987654324 来减少查询引擎必须做的工作(一些优化器可能不需要这个) @步骤。

    g.V().hasLabel('airport').where(__.out().limit(2).count().is_(P.gt(1))).count().next()
    

    【讨论】:

    • 考虑使用__.outE().limit(2).count().is_(P.gte(2)),因为您只需要计算边数,而无需计算所有边数来确定您的is_() 是否成功。
    • 我更新了答案以添加@stephenmallette 提出的观点。如果您能接受答案,那就太好了,这样其他人就可以看到现在已经回答了这个问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多