Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Neo4j:类似的查询,一个有效,一个失败;NotFoundException:未知标识符“;_Neo4j_Cypher - Fatal编程技术网

Neo4j:类似的查询,一个有效,一个失败;NotFoundException:未知标识符“;

Neo4j:类似的查询,一个有效,一个失败;NotFoundException:未知标识符“;,neo4j,cypher,Neo4j,Cypher,我的客户机传递给我的Neo4j持久层的是一组对,我必须查找具有与这些对对应的属性的节点。这是我提出的查询,它似乎可以工作(如:它返回我的测试用例的预期结果): 它抱怨WHERE子句中的user 为什么第一个有效,第二个无效?我看不出他们之间有什么显著的区别 (此外,我不知道这种方法是否被视为某种黑客行为,或者是否有更好/更干净/更快的方法来实现这一点,我总是乐于听取建议。) 谢谢 因为这是一个语法问题(对吧?),我想我应该能够在没有数据的情况下复制它。我复制了查询并在2.0.0-M6服务器的we

我的客户机传递给我的Neo4j持久层的是一组对,我必须查找具有与这些对对应的属性的节点。这是我提出的查询,它似乎可以工作(如:它返回我的测试用例的预期结果):

它抱怨
WHERE
子句中的
user

为什么第一个有效,第二个无效?我看不出他们之间有什么显著的区别

(此外,我不知道这种方法是否被视为某种黑客行为,或者是否有更好/更干净/更快的方法来实现这一点,我总是乐于听取建议。)


谢谢

因为这是一个语法问题(对吧?),我想我应该能够在没有数据的情况下复制它。我复制了查询并在2.0.0-M6服务器的webadmin控制台中运行它们,但它们都执行得很好。您正在运行哪个版本的Neo4j,以及如何执行查询?@jjaderberg:这很奇怪。如果我的图中没有数据,则查询返回0行。当我添加一个用户节点时,例如
start root=node(0)create(alice{FirstName:“alice”,LastName:“Apple”},(root)-[:HAS_user]->(alice)返回上面的错误。我已经在Neo4j 2.0.0-M5和2.0.0-M6上试过了。是的,如果我先运行create语句,我会得到相同的异常。但是:如果我将
root.LastName
设置为'apple',并在[['Alice','apple']]
中用
查询[user.FirstName,root.LastName]的位置,它会再次工作。两个查询之间的差异似乎使第二个查询中断,因为在第二个查询中,
user
标识符在数组中使用了两次。不知道为什么会发生这种情况。@jjaderberg:不,如果我在[['Alice']]
中使用[user.FirstName]的
,它也会返回异常。绘图变厚了。。将
与用户一起添加到
之前,其中…
起作用。我不知道这是否与
START root=node(0)
MATCH (root)-[:HAS_IDENTITY_PROVIDER]->(ip)<-[:IDENTITY_PROVIDER]-(claim)<-[:CLAIM]-(user)
WHERE [ip.Name, claim.IdentityProviderId] in [['facebook', 'f111'], ['facebook', 'f222'], ['facebook', 'f333'], ['twitter', 't444'], ['facebook', 'f555']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar, count(*) AS Score
ORDER BY Score desc, FirstName, LastName;
START root=node(0)
MATCH (root)-[:HAS_USER]->(user)
WHERE [user.FirstName, user.LastName] in [['Alice', 'Apple']]
RETURN user.Id AS Id, user.FirstName AS FirstName, user.LastName AS LastName, user.Avatar AS Avatar;