Neo4j渴望和可选的匹配问题

时间:2015-06-10 21:10:45

标签: neo4j eager-loading

当我尝试执行以下查询时(为了在教师和学生之间建立关系),我在配置文件中看到了一个急切的弹出窗口:

USING PERIODIC COMMIT 10000
LOAD CSV WITH HEADERS FROM "file:/AFile" as line
WITH line
MATCH (teacher:Teacher {ValueOne: toInt(line.ValueOne)})
MATCH (bully:Bully { Value2:toInt(line.ValueTwo)})
MATCH (bully)-[:LOVES]->(student:Student)
CREATE (student)<-[:HELPS]-(teacher)
;

个人资料的结果如下:

  • 空结果
  • 更新图表
  • 伊格
  • 过滤器(0)
  • SimplePatternMatcher
  • SchemaIndex(0)
  • SchemaIndex(1)
  • ColumnFilter
  • 过滤器(1)
  • 提取
  • 切片
  • LoadCSV

有人推荐可选匹配here,我试图在最后一场比赛中进行:

OPTIONAL MATCH (bully)-[:LOVES]->(student:Student)
WHERE student IS NOT NULL

导致错误:

  

其他节点为空。

我还尝试限制学生比赛只返回一个学生,但这也不起作用。但是,我认为我没有正确地做到这一点,我添加了学生LIMIT 1。

有没有人有关于如何减少eagers数量的建议?如果没有最终的创造,我不会渴望,而且我会这样做。

按照Stefan的建议,我不再急于求成,但我得到的是“其他节点为空”错误。

  • 空结果
  • UpdateGraph
  • 可选匹配
  • SchemaIndex(0)
  • SchemaIndex(1)
  • 切片
  • ColumnFilter
  • 过滤器(0)
  • 提取
  • LoadCSV
  • 过滤器(1)
  • SimplePatternMatcher
  • 参数

1 个答案:

答案 0 :(得分:1)

至少在2.2.2中,以下内容似乎没有eager

USING PERIODIC COMMIT 10000
LOAD CSV WITH HEADERS FROM "file:/AFile" as line
WITH line
MATCH (teacher:Teacher {ValueOne: toInt(line.ValueOne)})
MATCH (bully:Bully { Value2:toInt(line.ValueTwo)})
OPTIONAL MATCH (bully)-[:LOVES]->(student)
WHERE student IS NOT NULL and "Student" in labels(student)
MERGE (student)<-[:HELPS]-(teacher)

错误&#34;其他节点为空&#34;在与另一端的标签进行可选匹配时,似乎会弹出。