【问题标题】:can I use constraint and index in a single query to load csv to neo4j?我可以在单个查询中使用约束和索引将 csv 加载到 neo4j 吗?
【发布时间】:2017-03-29 05:46:22
【问题描述】:

我试图将 csv 导入 neo4j,它工作但很慢。 所以我正在尝试使用 'CONSTRAINT' 来加快速度。

我的以下作品

     'USING PERIODIC COMMIT \
      LOAD CSV WITH HEADERS FROM {filepath} AS row WITH \
      row limit 1000 \
      MERGE (spot:Spot{id:row.id}) \
      .....there are more line actually ... \
     '

但是当我在查询中添加“约束”时它不起作用,比如语法错误。

     'CREATE CONSTRAINT ON (s:Spot) ASSERT s.id is UNIQUE;\
      USING PERIODIC COMMIT \
      LOAD CSV WITH HEADERS FROM {filepath} AS row WITH \
      row limit 1000 \
      MERGE (spot:Spot{id:row.id}) \
      .....there are more line actually ... \
     '

我尝试先运行约束,然后立即加载 csv。但下面说一些错误。

         var unique_str = ' CREATE CONSTRAINT ON (s:Spot) ASSERT s.id is UNIQUE \
                       CREATE CONSTRAINT ON (c:City) ASSERT c.id is UNIQUE \
                       CREATE CONSTRAINT ON (t:Tag) ASSERT t.id is UNIQUE; '

这有什么问题?

一直有问题,请有人指出我的错误。 我该怎么办? 提前致谢!

【问题讨论】:

  • 您正在尝试为 Spot 创建两次约束。删除一个
  • @TomažBratanič 删除了一个,仍然无法正常工作。 :(

标签: javascript neo4j


【解决方案1】:

架构操作,例如创建约束和创建索引,必须在它们自己的事务中完成,其中该操作是事务中唯一的语句。

您使用的是什么客户端?使用官方的 Javascript 驱动程序看起来像这样:

var neo4j = require('neo4j-driver').v1;
var driver = neo4j.driver("bolt://localhost", neo4j.auth.basic("neo4j", "neo4j"));
var session = driver.session();
session.run("CREATE CONSTRAINT ON (s:Spot) ASSERT s.id is UNIQUE;");
session.run("CREATE CONSTRAINT ON (c:City) ASSERT c.id is UNIQUE;");
session.run("CREATE CONSTRAINT ON (t:Tag) ASSERT t.id is UNIQUE;");
session.run("USING PERIODIC COMMIT...");

session.run 将为每个语句创建一个隐式事务。

【讨论】:

  • 我试图在 nodejs 的后端使用 neo4j。感谢您的回答。
【解决方案2】:

我认为问题在于,如果您使用periodic commit,它必须是第一行,这就是您收到语法错误的原因。我要做的是单独创建一个约束,然后像第一次一样运行查询。

【讨论】:

  • 你的意思是,先运行约束,然后运行查询,然后将它们分开?
  • 是的,因为我不确定如果在同一个查询中使用它们会因为定期提交而运行多次
  • 所以,导入的约束和查询最好分开。但是我遇到了约束问题,不能一次运行几个,我在上面添加了它们,你能指出它们有什么问题吗?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多