服务外包杯准备-neo4j的学习
由于服务外包杯运用到了一些智能图谱的构建,近期打算开始运用甲方的数据来构建知识图谱,这里的图谱的构建需要一些neo4j的应用,用我的话来简单的说一下neo4j,这是一种比mysql多了一种“关系”的数据库,不同的节点之间,可以添加关系,基于此,neo4j有一种cycher的脚本语言(就像mysql中的sql语句),为此,我通过chatgpt了解了一些cypher的基本运用方式。如下:
1 创建节点和关系
// 创建节点 CREATE (n:Person {name: 'Alice', age: 30}) // 创建关系 MATCH (a:Person), (b:Person) WHERE a.name = 'Alice' AND b.name = 'Bob' CREATE (a)-[r:KNOWS]->(b)
2 查询节点和关系
// 查询所有节点和关系 MATCH (n) RETURN n // 查询特定节点及其关系 MATCH (n:Person {name: 'Alice'})-[r]->(m) RETURN n, r, m
3 过滤查询结果
// 使用WHERE子句过滤查询结果 MATCH (n:Person) WHERE n.age > 25 RETURN n
4 模式匹配
// 匹配指定的节点和关系模式 MATCH (a:Person)-[:KNOWS]->(b:Person) RETURN a, b
5 更新节点和关系
// 更新节点属性 MATCH (n:Person {name: 'Alice'}) SET n.age = 31 // 删除关系 MATCH (a:Person)-[r:KNOWS]->(b:Person) DELETE r
6 聚合函数和排序
// 使用聚合函数计算节点数量 MATCH (n:Person) RETURN COUNT(n) AS numberOfPeople // 对查询结果排序 MATCH (n:Person) RETURN n ORDER BY n.age DESC
7 使用逻辑操作符
// 使用逻辑操作符AND、OR、NOT等 MATCH (n:Person) WHERE n.age > 25 AND NOT n.name = 'Bob' RETURN n
8 删除节点和关系
// 删除指定节点及其关系 MATCH (n:Person {name: 'Alice'}) DETACH DELETE n