linux的docker安装和操作neo4j方法

1671人浏览 / 3人评论
  • docker安装neo4j
    • 镜像下载:
      docker pull neo4j
    • 安装
      docker run --name my_neo4j -it --detach --publish=7474:7474 --publish=7687:7687  --volume=/usr/local/docker_pro/neo4j/data:/data --volume=/usr/local/docker_pro/neo4j/logs:/logs --volume=/usr/local/docker_pro/neo4j/conf:/var/lib/neo4j/conf --volume=/usr/local/docker_pro/neo4j/import:/var/lib/neo4j/import --env NEO4J_AUTH=neo4j/password neo4j
      • --name指定容器名字 --publish映射容器的端口号到宿主机的端口号 --volume把容器内的数据目录挂载到宿主机的对应目录下 neo4j //指定使用的镜像 --env设定数据库的名字的访问密码
    • 在阿里云控制台开放7474和7687端口,linux也要打开这两个端口。
      #防火墙开放端口
      firewall-cmd --zone=public --add-port=7474/tcp --permanent
      firewall-cmd --reload
  • 数据批量导入
    • 数据库初始化,进行数据批量导入
      #1.先运行neo4j控制台
      docker exec -it my_neo4j /bin/bash
      #2.将csv文件复制到import文件夹下
      #3.在根目录下执行
      bin/neo4j-admin import --database neo4j --nodes=import/entity_src.csv --relationships=import/relation_src.csv --ignore-extra-columns=true --skip-duplicate-nodes=true --skip-bad-relationships=true
    • 修改配置文件,/config/neo4j.conf
      dbms.tx_log.rotation.retention_policy=100M size
      
      dbms.memory.pagecache.size=512M
      
      dbms.default_listen_address=0.0.0.0
      dbms.connectors.default_listen.address=0.0.0.0
      
      dbms.connector.bolt.listen_address=0.0.0.0:7687
      dbms.connector.http.listen_address=0.0.0.0:7474
      
      dbms.default_database=graph.db
      dbms.active_database=graph.db
      dbms.allow_upgrade=true
      #用与在控制台用load命令导入数据
      dbms.directories.import=import
      dbms.security.allow_csv_import_from_file_urls=true
      dbms.directories.logs=/logs
      

       

    • 浏览器访问ip:7474即可进入neo4j的browser页面,输入设置的账号和密码进行登陆,默认账号为neo4j

    • 登陆成功就可以看到上面新增的数据,若需要在browser上进行新增可以使用load命令

      ##load方法用于加载中小量数据
      ##导入实体:
        load csv with headers from "file:///entity_new.csv" as line
        create(z:quiz{name:line.实体})
      
      ##导入关系:
        load csv with headers from "file:///relation_new.csv" as line
        match(from:quiz{name:line.实体1}),(to:quiz{name:line.实体2})
        create(from)-[r:question{name:line.关系}]->(to)

       

  • neo4j基本操作(browser执行)
    • 新增数据
        create (n:新增人{name:'小明'})-[p:年龄{name:'年龄'}]->(m:年龄{name:19})
        match p=(n) where n.name='小明' return n
    • 查找数据
        # 基于n = name 查找最近的关系及实体
        match p=(n)-[]->(m) where n.name = 'name' return n,m
        # 基于n = name 查找最近的关系及实体-扩展到第二层
        match p=(n)-[*1..2]->(m) where n.name = 'name' return n,m
        # 模糊匹配
        match p = (n)-[*1..2]->(m) where n.name =~ '.*ame' return n,m

       

    • 基于py2neo库操作neo4j

      • 创建数据

        python 安装py2neo后,运行
          # 连接数据库
          from py2neo import Graph
          graph = Graph('http://localhost:7474', username='second', password='123456')
          #添加关系
          name1 = '小夏'
          relation = '年龄'
          name2 = 19
          graph.run("create (n:新增人{name:'%s'})-[p:年龄{name:'%s'}]->(m:年龄{name:%d})"%(name1,relation,name2))
          #查看关系
          res = graph.run("match p = (n) where n.name = '%s' return n"%(name1)).data()
          print(res)
          for i in res:
              print(i['n']['name'])
          #删除节点
          graph.run("match (n) where n.name = '%s' detach delete n"%(name1))
          res = graph.run("match p = (n) where n.name = '%s' return n"%(name1)).data()
          print(res)
          for i in res:
              print(i['n']['name'])

         

      • 查找数据

        python 安装py2neo后,运行
          from py2neo import Graph
          graph = Graph('http://localhost:7474', username='second', password='123456')
          name1 = 'AutoML'
          res = graph.run("match p = (n:quiz)-[]->(m) where n.name = '%s' return m"%(name1)).data()
          print(res)
          for i in res:
              print(i['m']['name'])

         

全部评论

2025-03-08 05:41:31.0
<a href=https://augmentin.top/>augmentin class</a> Peanut and mineral oil increases neutrophil and monocyte recruitment
2025-01-22 19:17:42.0
заказать москитную сетку <a href=http://ip.webmasterhome.cn/?ip=okna-vesna.ru>http://www.thienantech.com/?http://okna-vesna.ru</a>
2025-01-22 16:15:21.0
противомоскитная сетка <a href=https://РѕРєРЅР°-гарант.СЂС„/>http://РѕРєРЅР°-гарант.СЂС„</a>