知识图谱踩坑总结(springboot项目)

因为要做一个知识图谱系统,所以接触到了neo4j,现总结踩过的坑:

1. 版本问题(非常重要)

neo4j 3.xxx 对应 jdk 8,neo4j 4.xxx 对应jdk 11 neo4j 5.xxx 对应jdk17

如果打算做一个系统后端的版本要早点确定,我用的是jdk 8

配置

1.如果只是操作neo4j,安装neo4j按着网上的流程走一遍登录之后就可以建立springboot项目进行操作了

重要语句:

  1. 查询节点

@Query("match (n:标签名) return n")
match (n:标签名)  where n.属性名 contains {0} return n //模糊查询,{0}表示传入的参数
  1. 创建节点(带标签,比如公司,产品之类的)

@Query("match (n:标签名)")
  1. 删除节点

@Query("match (n:标签名) delete n")
@Query("match (n:标签名) detach delete n") // 连同关系一起删除
@Query("match (n{属性名:{0}}) detach delete n") 
// 实际代码,当时传了一个参数,{0}表示获取第一个参数,其他地方自行变通
  1. 查询节点

@Query("match (n:标签名) return n")

2.我做知识图谱系统的时候,我们组还用到了protege进行本体构建,然后再将构建好的数据导入neo4j,具体的构建流程和版本配置可以去搜索一下

在把数据导入neo4j之前,要先清空数据库,也就是将neo4j安装目录下 - > data -> database里的文件删除,然后导入相关文件,导入后就可以进行增删改查操作了

关于关系的操作:

  1. 查询:

match p=()-[r:关系名]->() return p
  1. 创建:

match (n:标签名{属性名:{0}}),(m:标签名{属性名:{1}})
create (n) - [:关系名] -> (m)

创建两个节点之间的关系,基于springboot项目,{0}和{1}代表获取方法传入的参数

  1. 删除:

match () -[r] -> () where ID(r)={0} delete r

知识图谱应该会自动给关系添加一个id

你可能感兴趣的:(知识图谱,neo4j,人工智能)