微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用gremlin和python在neptune中进行布尔运算?

如何解决如何使用gremlin和python在neptune中进行布尔运算?

我正在尝试执行一个查询,在该查询中我需要执行多个布尔操作,但是不知道该怎么做。

查询类似于(A and B) or (C and D)

我第一次尝试

g.V()\
.has("attra",P.lte(20))\
.has("attrb",P.gte(10))\
.or_()\
.has("attrc",P.lte(20))\
.has("attrd",P.gte(10))

,但是在查询中的or_()or之后,结果却不是我想要的。因为我还有其他复杂的布尔逻辑。

我也尝试过

g.V()\
.or_(
  has("attra",P.lte(20)).and().has("attrb",P.gte(10)),has("attrc",P.lte(20)).and().has("attrd",P.gte(10))
)

但是它表示has未定义。这是怎么做的?

我们将不胜感激

编辑:我的文件中包含以下导入

from __future__ import print_function
from gremlin_python.structure.graph import Graph
from gremlin_python.process.strategies import *
from gremlin_python.process.traversal import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
from gremlin_python.process.graph_traversal import __ as AnonymousTraversal

解决方法

我找到了has的定义位置。

可以在这里找到

from gremlin_python.process.graph_traversal import __ as AnonymousTraversal

所以我们要做

has = AnonymousTraversal.has

并像这样查询

g.V()\
.or_(
  has("attra",P.lte(20)).and().has("attrb",P.gte(10)),has("attrc",P.lte(20)).and().has("attrd",P.gte(10))
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。