Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Don';I Don’我不知道如何减法和Don';我不知道如何在Java中比较错误密码查询_Java_Neo4j_Cypher - Fatal编程技术网

Don';I Don’我不知道如何减法和Don';我不知道如何在Java中比较错误密码查询

Don';I Don’我不知道如何减法和Don';我不知道如何在Java中比较错误密码查询,java,neo4j,cypher,Java,Neo4j,Cypher,我正在尝试编写一个查询,该查询具有一个过滤器,其中包括一些值大于0的属性,以及两个属性之间的差值大于0的某些节点。然而,Neo4j v 2.1.6 这是一个通过嵌入式Neo4j引擎在java程序中运行的查询 我的查询如下所示: MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >

我正在尝试编写一个查询,该查询具有一个过滤器,其中包括一些值大于0的属性,以及两个属性之间的差值大于0的某些节点。然而,Neo4j v 2.1.6

这是一个通过嵌入式Neo4j引擎在java程序中运行的查询

我的查询如下所示:

MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >0 RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume, fromJar.content, toJar.name, toJar.volume, toJar.content
MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar)
WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume > toJar.content)
RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume,
  fromJar.content, toJar.name, toJar.volume, toJar.content;

你知道是什么引起的吗?或者如何解决它?

正如@DaveBennet所建议的,您可能正在将
内容
属性设置为字符串值。如果您是,那么这应该“修复”您的问题(另外,请注意,
WHERE
子句中的最后一个术语被简化):

匹配(fromJar)-[:IN]->(c)0和
(TOINT(toJar.volume)>TOINT(toJar.content))
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;
但是,上面的修复程序性能不是很好,因为它一直在执行(实际上应该是不必要的)类型转换。如果更改这些属性,使其具有数值,则效果会更好。如果这样做,则查询将如下所示:

MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >0 RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume, fromJar.content, toJar.name, toJar.volume, toJar.content
MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar)
WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume > toJar.content)
RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume,
  fromJar.content, toJar.name, toJar.volume, toJar.content;
MATCH(fromJar)-[:IN]->(c)0和(toJar.volume>toJar.content)
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;

而且,为了进一步提高性能,查询中的
c
节点应该被标记,并且应该有一个。

正如@DaveBennet所建议的,您可能正在将
内容
属性设置为字符串值。如果您是,那么这应该“修复”您的问题(另外,请注意,
WHERE
子句中的最后一个术语被简化):

匹配(fromJar)-[:IN]->(c)0和
(TOINT(toJar.volume)>TOINT(toJar.content))
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;
但是,上面的修复程序性能不是很好,因为它一直在执行(实际上应该是不必要的)类型转换。如果更改这些属性,使其具有数值,则效果会更好。如果这样做,则查询将如下所示:

MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >0 RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume, fromJar.content, toJar.name, toJar.volume, toJar.content
MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar)
WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume > toJar.content)
RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume,
  fromJar.content, toJar.name, toJar.volume, toJar.content;
MATCH(fromJar)-[:IN]->(c)0和(toJar.volume>toJar.content)
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;

而且,为了进一步提高性能,查询中的
c
节点应该被标记,并且应该有一个。

正如@DaveBennet所建议的,您可能正在将
内容
属性设置为字符串值。如果您是,那么这应该“修复”您的问题(另外,请注意,
WHERE
子句中的最后一个术语被简化):

匹配(fromJar)-[:IN]->(c)0和
(TOINT(toJar.volume)>TOINT(toJar.content))
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;
但是,上面的修复程序性能不是很好,因为它一直在执行(实际上应该是不必要的)类型转换。如果更改这些属性,使其具有数值,则效果会更好。如果这样做,则查询将如下所示:

MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >0 RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume, fromJar.content, toJar.name, toJar.volume, toJar.content
MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar)
WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume > toJar.content)
RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume,
  fromJar.content, toJar.name, toJar.volume, toJar.content;
MATCH(fromJar)-[:IN]->(c)0和(toJar.volume>toJar.content)
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;

而且,为了进一步提高性能,查询中的
c
节点应该被标记,并且应该有一个。

正如@DaveBennet所建议的,您可能正在将
内容
属性设置为字符串值。如果您是,那么这应该“修复”您的问题(另外,请注意,
WHERE
子句中的最后一个术语被简化):

匹配(fromJar)-[:IN]->(c)0和
(TOINT(toJar.volume)>TOINT(toJar.content))
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;
但是,上面的修复程序性能不是很好,因为它一直在执行(实际上应该是不必要的)类型转换。如果更改这些属性,使其具有数值,则效果会更好。如果这样做,则查询将如下所示:

MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar) WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume - toJar.content) >0 RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume, fromJar.content, toJar.name, toJar.volume, toJar.content
MATCH (fromJar)-[:IN]->(c)<-[:IN]-(toJar)
WHERE c.status='ToDo' AND fromJar.content > 0 AND (toJar.volume > toJar.content)
RETURN ID(c) AS contextID, c.step, fromJar.name, fromJar.volume,
  fromJar.content, toJar.name, toJar.volume, toJar.content;
MATCH(fromJar)-[:IN]->(c)0和(toJar.volume>toJar.content)
返回ID(c)作为contextID,c.step,fromJar.name,fromJar.volume,
fromJar.content、toJar.name、toJar.volume、toJar.content;

而且,为了进一步提高性能,应该标记查询中的
c
节点,并且应该有一个。

它们是整数还是字符串?您是否尝试过
和(toInt(toJar.volume)-toInt(toJar.content))>0
?它们是整数还是字符串?您是否尝试过
和(toInt(toJar.volume)-toInt(toJar.content))>0
?它们是整数还是字符串?您是否尝试过
和(toInt(toJar.volume)-toInt(toJar.content))>0
?它们是整数还是字符串?您是否尝试过
和(toInt(toJar.volume)-toInt(toJar.content))>0