为什么 Neo4J 密码匹配(n:City) 返回 Count(n) 需要很长时间并使用 Neo4J 浏览器崩溃



我从 2 个月开始使用 Neo4j。我创建了一个 Neo4j 图,并在其中加载了 6M 个城市。我的图形存储大约有 6 个演出。每个城市有4个属性:

  • Name
  • Longitude
  • Latitude
  • Population

这些节点有一个标签City

我正在尝试使用 Neo4j 浏览器运行一些查询。我添加了一个索引:

CREATE INDEX ON :City(Name)

现在,如果我运行查询以查找如下所示的特定名称,那么结果就会非常快:

MATCH (n:City)
WHERE n.Name = 'New York'
RETURN n

但是当我只想在图表中拥有城市数量时,Unknown Error上升,我无法获得我正在寻找的数字:

MATCH (N:City)
RETURN COUNT(n)

MATCH (n:City)
WHERE n.Name =~ 'New.*'
RETURN COUNT(n)

我在这里错过了什么吗?

您计算城市数量的代码是正确的,问题是 Cypher 区分大小写,您要返回的标识符必须与您在 MATCH 子句中指定的标识符大小写相同,您的代码应如下所示:

MATCH (n:City) 
RETURN count(n)

对于您的第二个代码,它应该运行没有任何痒,您确定正确标记所有内容吗?至少它应该不返回任何行来指示没有名称以"New"开头的节点(在名为 City 的标签中)

MATCH (n:City)
WHERE n.Name =~ "New.*$" 
RETURN count(n)

查询中指定节点的属性时,不要忘记记住这种情况(例如,"name"与"Name"不同)

最新更新