问题:
1.neo4j ip访问问题:
本地访问可以:http://localhost:7474/browser/
但是通过ip访问会打不开:http://ip:7474/browser/
原因:neo4j配置问题,neo4j默认不开启ip地址监听
解决:打开neo4j配置文件,打开"dbms.connectors.default_listen_address=0.0.0.0"的注释,重新启动即可.
2.neo4j社区版启动命令:
进入neo4j的bin目录下
在bin目录下进入cmd
输入命令 neo4j.bat console
3.同一台机器启动多个neo4j:
前提要求:使用neo4j社区版
步骤:
-进入neo4j的conf目录下
-打开neo4j.conf
-修改 dbms.connector.bolt.listen_address=:7687, dbms.connector.http.listen_address=:7474, dbms.connector.https.listen_address=:7473 并打开注释(neo4j默认注释这三项)
查询语句:
创建节点:
例:创建军队标签,名称为陆军1队
create(z:Army{name:"陆军1队"}) return z
创建节点之间的关系:
例:创建kj战斗机 包括着零件 航空器
match (l:equip{name:"kj战斗机"}),(e:equip{name:"航空器"}) merge(l)-[:`包括着零件`]->(e)
根据id删除节点
match (t:EntityNode)-[r:] where id(t)=228 delete (t)
查询所有节点:
match(n) return n
删除某个标签下的所有关系和节点:
例:删除kgEntity标签下边所有关系及其节点
MATCH (n:kgEntity) detach delete n
查询关系为’配备’的实体和关系
MATCH p=()-[r:`配备`]->() RETURN p LIMIT 25
删除关系为’配备’的实体和关系
match (n:EntityNode)-[r:`配备`]-(e) DETACH DELETE n
插入实体间的关系
match (l:EntityNode{nodeId:'269ee1ff-cca8-4e89-a749-fc091a211603'}),(e:EntityNode{nodeId:'8a56156c-6119-4b2a-9cf4-dacb28c9fd57'}) merge(l)-[r:`轰炸`]->(e) return l,e,r
neo4j删除所有节点和关系:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
根据id删除关系
match ()-[r]-() where id(r)=80 delete r
"查"操作 , 查找 id 属性 为 501的节点:
MATCH (r)
WHERE id(r) = 501
RETURN r
根据id查询:
match (t:kgEntity)-[r]-(n) where id(t)=45 return (t)-[r]-(n)
根据关系id查询节点和关系:
例:查询关系id为7的节点
match(t:EntityNode)-[r]-(n) where id(r)=7 return t,r,n
根据labels(标签)查询:
例:查询labels为kgEntity的所有节点和关系
match (n:kgEntity) return n
查询具有特定关系的元组:
例:查询具有"装备着"关系的节点和关系
match p=()-[:`装备着`]->() return p
查询某个节点的所有关系:
例:查询kj战斗机的全部关系以及有关系的节点
return (:EntityNode{name:"kj战斗机"}) <-->()
查询某个节点的n层关系:
例:查询指向kj战斗机以及层数不超过5的所有节点和关系
match p=(n:EntityNode{name:"kj战斗机"})<-[*..5]-() return p
例:查询图和图<军事装备>中的id属性为127和177的两个节点之间大于1层的关系
match p=(s:EntityNode{id:'127'})-[*1..]->(t:军事装备{id:'177'}) return p
删除neo4j中所有没有关系的节点:
例:删除"军事装备"标签下的所有没有关系的节点
MATCH (n:`军事装备`) WHERE size((n)--())=0 DELETE (n)
模糊查询:~'. .*’ (~ 类似 like,.类似%)
例:查询name属性值包含"军"字的节点和其关联的关系
match (n:EntityNode)<-[r]->(m) where n.name =~'.*军.*' return n,r,m
查询两个节点之间的最短路径:allShortestpaths 和 shortestpath关键字
1.allShortestpaths 查询所有最短路径
例:查询id为8210和8291这两个节点之间的所有最短路径
match p=allShortestpaths ((p1)-[*]->(p2)) where id(p1)=8210 and id(p2)=8291 return p
2. shortestpath 查询一个最短路径
例:查询id为8210和8291这两个节点之间的最短路径
match p=shortestpath ((p1)-[*]->(p2)) where id(p1)=8210 and id(p2)=8291 return p
查询id为8210的点向外路径<=2的点和边
match (t)-[r*..2]->(n) where id(t)=8210 return (t),[r],(n)
查询由8210开始,步长<=2,并且本体名称在[‘版本’,‘测试需求’,‘功能需求’] 中的记录
match (n)-[r*..2]->(m) where id(n)=8210 and n.ontology_name in ['版本','测试需求','功能需求'] return n,r,m
连接两个节点
MATCH (e:kgEntity {name: 'E-10无人机'})
MATCH (l:kgEntity {name: '雷达8'})
MERGE (e)-[r:发生的敌情事件]->(l)
RETURN e, r, l
查询label为kgEntity下所有节点
match (k:kgEntity) return k