我提出的问题与您在这里看到的几乎相同,但有一个约束条件,即必须使用groovy而不是java语法。理想情况下,答案应该非常简洁。
我有一个简单的人顶点图。每个人都有一个“年龄”属性,列出该人的年龄(以年为单位)。还有“worksFor”标记的边连接成对的人顶点。我希望看到所有边缘,边缘两端的人都具有相同的年龄属性。
然后我想问一个类似的问题,两个年龄相差不到3年。
如前所述,这应该是groovy语法,而不是Java语法。小精灵3是首选,但小精灵2的答案是可以接受的。
使用math比较两个日期属性:
g.V().hasLabel('EnterExitDate').limit(10000).as('enter','exit')
.where("enter",lt("exit")).by('enter').by('exit')
.where(math('(exit - enter) / (3600*1000) ')
.by(values('exit').map({ it.get().time }))
.by(values('enter').map({ it.get().time }))
.is(lt(1)))
.valueMap()
此查询将查找1小时内发生的所有员工对进出记录。
SetExitDate类:
public class EnterExitDate {
private Date enter;
private Date exit;
// getters and setters...
}
如果我们知道与所有其他顶点进行比较的目标顶点,则以下操作可能有效:
t=g.V()。has('id',target\u node\u id')。value('age')。next()
g、 V().has('age')。filter{it.get()。value('age')-t
我不知道如何在一个查询中做到这一点。我也不知道是否有一个函数/步骤来获得绝对值。
这只能部分满足您的需求,但这可能是一个开始。
边缘两端的人具有相同年龄属性的所有边缘
g.V().as("a").outE("worksFor").as("e").inV().as("b").select("a","b").by("age").
where("a", eq("b")).select("e")
两个年龄相差不到3年
g.V().as("a").outE("worksFor").as("e").inV().as("b").select("a","b").by("age").
filter {Math.abs(it.get().get("a") - it.get().get("b")) < 3}.select("e")
一个简单的背景:我正在构建一个语义图,使用带有邻接表的BGL有向图: 我需要做的事情之一,是处理一个较小的图(子图)到我的主图。 暗示我的lambda捕获参数应该是一对(我猜是一个实际的边?)。 所以,我的问题是:我怎样才能发现在顶点的外边中是否存在类似的边呢?
我必须在这个图上执行一些任务。1)找到所有没有后继的顶点。2)给没有后继的顶点赋值。(我可以用顶点属性来做这件事)。3)回溯图并用子节点的最小值更新每一层的所有父节点(甚至是中间父节点)。 例如, 根据上面的DAG,顶点{2,5,6,7}没有任何后继或外边。假设我将分别为顶点{2,5,6,7}赋值{3,2,4,6}。
问题内容: 我想比较PHP中的两个浮点数,如以下示例代码所示: 在此代码中,即使和相同,它也返回条件的结果而不是条件。有没有什么特殊的方法来处理/比较PHP中的浮点数? 如果是,那么请帮助我解决此问题。 还是我的服务器配置有问题? 问题答案: 如果您这样做,它们 应该 是相同的。但是请注意,浮点值的一个特征是 看起来 可以导致相同值的计算实际上不必相同。因此,如果是一个文字并通过计算到达该文字,则
我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和
我正试图在Linux中实现这一点 我面临着几个问题: 处理浮点数 比较(使用$vs不使用) 计算绝对值 我不能一次解决我的问题并处理所有这些问题。我已经搜索了很多很多页面,有些解决方案不适合我。例如,我似乎没有腹肌功能。 任何帮助都将不胜感激。
此代码给出输出ELSE 此代码给出的输出是: 虽然两个程序看起来都一样,但为什么输出有差异呢?为什么会这样?