【Neo4j的简单搭建与使用】

Neo4j简介

Neo4j是一个高性能的, NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。

Neo4j安装(MAC)

  1. 下载

下载Neo4j Community Edition,下载地址:http://neo4j.org/download。
由于是mac下载,直接下载dmg文件。

  1. 运行

安装Neo4j Community Edition并打开,配置运行数据存储路径,配置完毕后点击start启动。
在这里插入图片描述
3. Neo4j的远程可视化操作

打开 options ,找到 .neo4j.conf,取消以下代码的注释

 dbms.connectors.default_listen_address=0.0.0.0
  1. 浏览器打开
    如果配置了第三步的Neo4j的远程可视化操作,则访问http://0.0.0.0:7474/browser/,没有就直接访问 http://localhost:7474/browser/。

在这里插入图片描述

Neo4j使用

1. 基本的增删改查

  1. 插入节点

插入一个Person类别的节点,且这个节点有一个属性name,属性值为Andres。

CREATE (n:Person {
   name : 'Andres'});
  1. 插入边
    插入一条 a 到 b 的有向边,且边的类别为Follow。
  MATCH (a:Person),(b:Person)
  WHERE a.name = 'Node A' AND b.name = 'Node B'
  CREATE (a)-[r:Follow]->(b);
  1. 更新节点
    更新一个Person类别的节点,设置新的name。
 MATCH (n:Person {
    name: 'Andres' })
  SET n.name = 'Taylor';
  1. 删除节点
    Neo4j中如果一个节点有边相连,是不能单单删除这个节点的。
MATCH (n:Person {
    name:'Taylor' })
  DETACH DELETE n;
  1. 删除边
  MATCH (a:Person)-[r:Follow]->(b:Person)
  WHERE a.name = 'Node A' AND b.name = 'Node B'
  DELETE r;
  1. 查询最短路径
  MATCH (ms:Person {
    name:'Node A' }),(cs:Person {
    name:'Node B' }), p = shortestPath((ms)-[r:Follow]-(cs)) RETURN p;
  1. 查询两个节点之间的关系
 MATCH (a:Person {
    name:'Node A' })-[r]->(b:Person {
    name:'Node B' })
  RETURN type(r);
  1. 查询一个节点的所有Follower
  MATCH (:Person {
    name:'Taylor' })-[r:Follow]->(Person)
  RETURN Person.name;

详细查询

请查看The Neo4j Cypher Manual v4.4

项目经验

1.将关系模型映射到图数据库:
当从关系模型导出图模型时,您应该记住以下准则:
行是一个节点,表名是一个标签名,联接或外键是一种关系。

注意:Neo4j不存储空值。CSV文件中的Null或空字段可以跳过,或替换为加载CSV中的默认值。

创建节点并使边带权重

学习案例

例1:

CREATE (a:Place {
   id: 'A'}),
       (b:Place {
   id: 'B'}),
       (c:Place {
   id: 'C'}),
       (d:Place {
   id: 'D'}),
       (e:Place {
   id: 'E'}),
       (f:Place {
   id: 'F'}),
       (g:Place {
   id: 'G'}),
       (d)-[:LINK {
   cost:4}]->(b),
       (d)-[:LINK {
   cost:6}]->
### 如何搭建GraphRAGNeo4j集成的环境 #### 环境准备 为了成功搭建 GraphRAG Neo4j 的集成环境,需要先完成必要的软件和库安装。以下是具体的依赖项以及其作用: - **Python**:作为主要编程语言用于开发和部署。 - **Neo4j**:提供图数据库支持,存储节点关系数据并执行复杂查询[^1]。 - **Milvus**:负责向量相似度搜索功能,提升检索效率。 - **Langchain 或其他框架**:简化自然语言处理流程并上述工具对接。 确保本地机器已安装 Python (建议版本 >=3.8),并通过 pip 安装所需包: ```bash pip install neo4j milvus pymilvus langchain transformers torch faiss-cpu tiktoken openai ``` 对于 Neo4j 数据库服务端,请访问官网下载最新稳定版二进制文件或者 Docker 映像来快速启动实例;而 Milvus 同样推荐采用容器化方式运行以减少配置负担[^2]。 #### 配置连接参数 创建一个新的 Python 文件 `graphrag_neo4j_setup.py` 并初始化如下代码片段设置基本链接属性: ```python from neo4j import GraphDatabase import os NEO4J_URI = "bolt://localhost:7687" NEO4J_USER = "neo4j" NEO4J_PASSWORD = "password" def init_driver(): driver = GraphDatabase.driver(NEO4J_URI, auth=(NEO4J_USER, NEO4J_PASSWORD)) return driver if __name__ == "__main__": driver = init_driver() with driver.session() as session: result = session.run("RETURN 'Connection Successful!' AS message") record = result.single() print(record['message']) ``` 此脚本定义了一个简单的函数用来建立到 Neo4j 实例的安全通道,并验证通信状态正常否。 接着调整对应变量值匹配实际部署情况下的地址/认证信息即可继续下一步操作。 #### 导入GraphRAG生成的数据至Neo4j 假设已经利用某些方法构建好了基于文本资料的知识表示形式——即所谓的“语义网络”,那么现在就需要把这些结构化的成果迁移到目标平台上去呈现出来供后续分析调用了。 可以借助 Cypher 查询语言编写批量加载命令将外部 JSON 格式的文档映射成本地模式中的实体及其关联边的关系表达式: ```cypher CALL apoc.load.json('file:///path_to_your_data.json') YIELD value MERGE (n:Entity {id:value.id}) ON CREATE SET n += value.properties; WITH collect(value.relations) AS rels UNWIND rels AS r MATCH (a:Entity),(b:Entity) WHERE a.id=r.source AND b.id=r.target MERGE (a)-[:REL_TYPE]->(b); ``` 这里假定输入源遵循特定的标准格式包含字段名如 id、properties 及 relations 列表等描述项目间逻辑联系的内容。 最后重启整个应用程序确认一切运转良好之后就可以享受由强大组合带来的便利啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值