zoukankan      html  css  js  c++  java
  • docker安装neo4j及py2neo的使用

    一、安装

    #拉取容器,不要拉最新版的,最新版的有bug
    docker pull neo4j:3.4
    
    #拉取可能会很慢或中断,可以使用阿里云加速地址
    vim /etc/docker/daemon.json
    
    #your_id你自己的阿里云ID号
    --registry-mirror=https://{your_id}.mirror.aliyuncs.com
    #启动容器
    docker run -it -d -p 7474:7474 -p 7687:7687 neo4j:3.4

    二、修改密码

    
    
    方法一
    进入ip:7474,初始账号密码neo4j,登入后修改密码
    方法二
    #container容器id
    docker exec --interactive --tty <container> bin/cypher-shell

    三、访问

    #http://服务器的ip:7474

    四、py2neo

    import pandas as pd
    from py2neo import Graph, Node, Relationship, NodeMatcher
    
    
    #连接neo4j数据库,输入地址、用户名、密码
    graph = Graph('http://*.*.*.*:7474', username='neo4j', password='neo4j')
    
    df=pd.read_excel(r"company.xlsx")
    
    #创建公司名节点
    for i in range(df.shape[0]): company=df.iloc[i, :][0] node = Node("COMPANY", company=company, ) graph.create(node)
    #创建公司信息节点
    for i in range(df.shape[0]): columns = df.columns.to_list() for j in columns[1:]: _node = df.iloc[i, :][j] node = Node("INFO", _node=_node,column=j) graph.create(node)
    #建立公司信息关系
    for i in range(df.shape[0]): company = df.iloc[i, :][0] matcher = NodeMatcher(graph) company_node = matcher.match("COMPANY", company=company).first() columns=df.columns.to_list() for j in columns[1:]: _node=df.iloc[i, :][j] _node=matcher.match("INFO", _node=_node,column=j).first() # print(_node,j,company_node) relationship = Relationship(_node, j, company_node) graph.create(relationship)

    数据从天眼查爬取的

    数据文件:https://pan.baidu.com/s/1g_UYUVpG9KV9T1eA6PReZQ    密码:e662

    五、cypher常用查询

    查询所有数据
    match (n) return n
    
    查询所有数据,并限制查询数据量
    match (n) return n limit 10
    
    查询某个标签的所有节点
    match (c:COMPANY) return c limit 10
    
    查询某个标签的所有节点的指定属性
    match (i:INFO) return i.column limit 100
    
    查询某个标签的所有节点的指定属性
    match (i:INFO) return i.column='公司类型' limit 100
    
    match (i:INFO { column:'公司类型' } ) return i
    
    查询注册资金都是60万相关的公司名
    match (i:INFO{_node:'60万人民币'})--(COMPANY) return i,COMPANY
    
    查询整个图中所存在的关系
    match (i:INFO)-[r]-(company:COMPANY) return type(r)
    
    查询整个图中所存在的关系并去除结果中的重复元素
    match (i:INFO)-[r]-(company:COMPANY) return distinct type(r)

    查询2家公司相同的信息
    match (c1:COMPANY{company:"上海贯德国际贸易有限公司"}),(c2:COMPANY{company:"甘肃谷森新能源科技有限公司"}),r=((c1)-[*..3]-(c2)) return r
  • 相关阅读:
    Excel打印视图模式,界面网格模式等设置
    如何跳槽,如何找工作?
    使用Typora编写Markdown的介绍及快捷键的使用
    Office 2016 简体中文批量授权版镜像下载(含Visio、Project)
    Microsoft SQL Server 2016 官方简体中文64位企业版下载(含激活序列号密钥)
    python解析库lxml的简单使用
    二分查找——Find Peak Element,主要是利用index+1和index-1来判断走向
    RCE——远程命令/代码执行
    Java反序列化漏洞原理和检测
    S-H-ESD——就是先识别出趋势(中位数),然后做残差,利用残差看看正态分布的偏离点
  • 原文地址:https://www.cnblogs.com/angelyan/p/12604410.html
Copyright © 2011-2022 走看看