小编Dav*_*ett的帖子

Neo4J CSV关系

我是一个Neo4J新手,我有一个简单的CSV源码和目标IP.我想在具有相同标签的节点之间创建关系.

像... source_ip >> ALERTS >> dest_ip,或者相反.

"dest_ip","source_ip" 
"130.102.82.16","54.231.19.32" 
"130.102.82.116","114.30.64.11" 
"130.102.82.116","114.30.64.11" 
...

LOAD CSV WITH HEADERS 
FROM "file:///Users/me/Desktop/query_result.csv" AS csvLine  
CREATE (alert:Alert { source_ip: csvLine.source_ip, dest_ip: csvLine.dest_ip})

MATCH (n:Alert) RETURN n LIMIT 25

dest_ip 130.102.82.16 source_ip 54.231.19.32
Run Code Online (Sandbox Code Playgroud)

....

这很好用.我的问题是如何在警报内部创建标签之间的关系?我已经尝试过很多次失败了.我猜我需要为Source和Dest设置单独的节点然后链接它们,只是不确定如何.

提前致谢!

和平,汤姆

relationship neo4j cypher

4
推荐指数
1
解决办法
128
查看次数

在Neo4j中使用多个关系中的Where子句

显然,似乎以下WHERE子句不起作用,因为我们的查询中有两个关系(WorksAt和ResponsibleFor).如果只有一种关系,那么这就像魔法一样.在下面的查询中,查询返回部门科学中的所有课程,但它不会过滤掉Maria Smith教授的课程.我想做的只是获得在科学系工作的Maria Smith教授的课程.我遇到了似乎是潜在候选条款的WITH和Start子句,使其可以在将查询的一部分过滤掉之前将其发送到另一部分.
http://neo4j.com/docs/stable/query-with.html
但我还没有掌握这个概念.有人帮忙吗?

MATCH (d:Department)<-[w:WorksAt]-(t:Tutor)-[r:ResponsibleFor]->(c:Courses) 
WHERE d.name='Science' 
AND  t.name='Maria Smith'
return  c,r
Run Code Online (Sandbox Code Playgroud)

neo4j graph-databases cypher

4
推荐指数
1
解决办法
2899
查看次数

在 Neo4j 中将所有属性的所有值转换为小写

我有各种具有不同形式标签的节点:

(n:Label)
n.Name='ABS'
n.sample='ajx'
Run Code Online (Sandbox Code Playgroud)

我想将所有属性值更改为小写。即上述结果应为:

(n:Label)
n.Name='abs'
n.sample='ajx'
Run Code Online (Sandbox Code Playgroud)

我尝试了以下...

match(n:Label) SET n.Name`=toLower(n.Name) 
Run Code Online (Sandbox Code Playgroud)

但是这个查询一次只更新一个属性。有没有办法在单个查询中同时更改所有属性。

lowercase neo4j cypher

4
推荐指数
1
解决办法
1864
查看次数

使用Cypher(Neo4j)查询时, - > - 和 - >之间有什么区别

我在Cypher中看过不同版本的"链接",例如:

  1. match (n)-[r]-() delete, n, r
  2. merge (n) -[:TO {dist:line.distance}] -> (m)
  3. match (n:MyNode)-[r:TO]->(m) where not ((m)-->())

可以使用1)" - ",2)" - >"3)" - >"分配这些链接,我想知道这三种类型之间的区别是什么.在这些不同的背景下,我看到它们的使用方式不同,但我们想知道是否有一个理解这一点的一般规则.

neo4j cypher

4
推荐指数
1
解决办法
191
查看次数

如何检查密码中节点的类型?

我有一个包含三种节点类型的图:NodeX,NodeY和NodeZ

我有这个密码查询:

MATCH (x:NodeX)-[*]->(d)  
WHERE x.Name = 'pqr'  
RETURN x,d;
Run Code Online (Sandbox Code Playgroud)

这里(d)可以是NodeY或NodeZ.我想分别处理不同的nodetypes.就像是:

MATCH (x:NodeX)-[*]->(d)  
WHERE x.Name = 'pqr'  
WITH d
CASE WHEN typeof(d)=NodeY THEN {MATCH (y:NodeY)-[*]-(z:NodeZ)}
     WHEN typeof(d)=NodeZ THEN {MATCH (z:NodeZ)-[*]-(y:NodeY)}
RETURN y,z
Run Code Online (Sandbox Code Playgroud)

yz对应于d.这可能吗?

neo4j cypher

3
推荐指数
1
解决办法
2724
查看次数

在neo4j中没有收到警告的情况下找到2个节点之间路径的正确方法是什么?

我目前正在使用neo4j,需要在大图中找到2个节点之间的路径。我正在使用以下密码查询:

MATCH p=(acq:Acquisition {id:'1'})-[r*]->(ecs:ExternalCommunicationService {id:'1'})
RETURN p
Run Code Online (Sandbox Code Playgroud)

一切正常(查询返回节点之间任意长度的路径),但是下面显示警告消息:

警告:不推荐使用此功能,以后的版本中将删除该功能。不建议将绑定关系绑定到可变长度模式中的列表。

在官方文档中使用与相同的模式*

在不得到任何警告的情况下(不使用不赞成使用的语法)查找节点之间任何长度的路径的正确方法是什么?

neo4j cypher

3
推荐指数
1
解决办法
1790
查看次数

无法删除neo4j中的节点标签

我创建了 2 个标签 Person,Movies by:

CREATE (ee:Person { name: "test", id: "1" })

CREATE (m:Movie { name: "movie_1", id: "2" })
Run Code Online (Sandbox Code Playgroud)

当我运行时:

START n=node(*)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r;
Run Code Online (Sandbox Code Playgroud)

但标签仍然存在。如何删除标签?

neo4j cypher

2
推荐指数
1
解决办法
4249
查看次数

Neo4j在创建节点时向节点添加属性或属性

我想创建一个包含大约五个其他属性的节点,包括该节点的名称和一些特征.我将如何在create语句中添加这些属性或属性

CREATE (n {<node-name>:<label-name>})
Run Code Online (Sandbox Code Playgroud)

例如,如果我想为一个人创建一个节点,我会在该人之后命名并具有属性名称,权重,高度等.有没有办法将所有这些放在一个创建语句中?

neo4j cypher

2
推荐指数
1
解决办法
453
查看次数

Apoc Dijkstra 在计算最短路径时双向遍历

我一直在尝试使用 neo4j 及其 apoc 进程库来获取 2 个节点之间的最短路径。
例如我创建2个节点如下

CREATE (:Point {title:'A'})
CREATE (:Point {title:'B'})
Run Code Online (Sandbox Code Playgroud)

然后我就这样建立他们的关系

MATCH (u1:Point {title:'A'}), (u2:Point {title: 'B'}) 
CREATE (u1)-[:distance {value:10}]->(u2)
Run Code Online (Sandbox Code Playgroud)

现在我已经建立了从 A 到 B 的直接关系,反之亦然。所以当我如下调用 apoc Dijkstra 时

MATCH (start:Point {title: 'B'}), (end:Point {title: 'B'}) 
CALL apoc.algo.dijkstra(start, end, 'distance', 'value') YIELD path, weight 
RETURN path, weight
Run Code Online (Sandbox Code Playgroud)

我不应该得到任何结果,因为它们不是从 B 到 A 的定向路径。但我得到的结果与使用从 A 到 B 的路径运行查询时相同。

有人能告诉我为什么会这样吗?为什么Dijkstra不顾方向?任何帮助将非常感激。

dijkstra neo4j cypher neo4j-apoc

2
推荐指数
1
解决办法
574
查看次数