gremlin - 两个连续“或”之间的区别分别VS包括相同“或”内的每个条件
问题描述
我试图理解做两个连续或单独制作与将所有条件放在一个或中的概念差异。我这样做会产生不同的值:
分别做 or :
g.V(1).in('linked_to', 'used_by')
.or(has('type', 'knows'), has('type', 'like'), has('type','follows'))
.or(hasNot('last_used'), has('last_used',gt(datetime('2021-09-07T10:04:05.000Z'))))
.out('linked_to', 'used_by')
.dedup()
vs 包括 or 在一个相同的 or 中
g.V(1).in('linked_to', 'used_by')
.or(has('type', 'knows'), has('type', 'like'), has('type','follows') , hasNot('last_used'), has('last_used',gt(datetime('2021-09-07T10:04:05.000Z'))))
.out('linked_to', 'used_by')
.dedup()
解决方案
or
对于几个测试,你真的不需要一个步骤。您可以within
改用并将其余步骤包装在or
. 请注意,这hasNot(key)
可能是一个昂贵的过滤器,因为您正在测试每个正在测试的顶点上是否不存在某些东西,这可能不是索引帮助的东西。例如:
g.V(1).
in('linked_to', 'used_by').
or(has('type', within('knows', 'like', 'follows')),
hasNot('last_used'),
has('last_used',gt(datetime('2021-09-07T10:04:05.000Z'))))
推荐阅读
- spring - Kafka Consumer outbound 随着主题的 Inbound 增加而减少
- python - 是否可以以字节为单位转换特征图?
- python - Python打开一个url并从'onclick'中提取location.href值
- python - 如何使用 Pillow 在 python 中使用黑白图像将图像掩蔽到另一个图像?
- powershell - 如何获得有关 MinGW64、C/C++ 语言关键字和库函数的 Windows 命令行帮助?
- sql - SQL,每个用户每小时选择事务
- anaconda3 - Windows 7(32 位)Anaconda3-2020.02-Windows-x86 版本中的安装问题
- javascript - 出现在 html 中的阴影内容并且不允许获取文本输入的全部值
- javascript - 提交后关闭单选按钮
- python - 使用随机值更新实例的有效方法