【问题标题】:Creating relationships in neo4j在 neo4j 中创建关系
【发布时间】:2014-06-04 22:02:31
【问题描述】:

我已经阅读了大量内容,但似乎无法找到答案。如果某处有重复的帖子,请指出!

不管怎样,就这样吧。

我正在尝试将数据导入 Neo4J 并创建关系以便轻松绘制数据图表。我可以使用 LOAD CSV WITH HEADERS 命令毫无问题地导入数据,现在我不确定如何创建关系片段。

我的 CSV/表格如下所示

source  target  action
172.x.x.x   172.y.y.y  accept
172.x.x.x   172.y.y.y  drop

所有数据最终都在同一个数据库和“表”中

我的目标是有如下关系方案:

"Source"-------[action]------->"Target"

我的第一次尝试是:

START n=node(*)
WHERE HAS(n.source) AND HAS(n.destination)
CREATE (n)-[:CONNECTS_TO]->(n)

运行后我根本看不到这种关系,即使浏览器外壳说它确实创建了它们,而且这并没有处理“动作”部分。

任何帮助将不胜感激。

【问题讨论】:

  • 您在导入时是否为源/目标创建了单独的节点?有关您的结构的更多详细信息会很好。
  • 你能分享你的 load-csv 语句吗?也许像我在这里做的那样创建一个绘图员? neo4j.org/graphgist?cace2732effa846d9fc2来源是:gist.github.com/jexp/cace2732effa846d9fc2
  • 这似乎存在多个问题(例如您创建了从 n 到 n 的自反关系)。此外,您似乎假设单个节点同时具有源和目标。我认为你的关系会有那些,而不是你的节点。在我们提供帮助之前,人们需要查看您的负载信息。

标签: neo4j graph-databases


【解决方案1】:

您可以使用以下命令将 CSV 加载到 Neo4j 中

 load csv with headers from "file:///file_path" as input
 match (from:Node {source: input .source}),(to:Node {target:input.target})
 create (from)-[:RELATION  {type: input.action }]->(to)

*注意:您必须在上述查询中通过替换“节点”来提及您的标签名称。

【讨论】:

    猜你喜欢
    • 2016-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多