• neo4j导入csv文件


    neo4j导入csv文件

    关于neo4j的安装

    官网和网上博客提供了n中安装的方法,这里不再赘述:
    普通安装: https://cloud.tencent.com/developer/article/1336299
    windows安装: https://www.cnblogs.com/ljhdo/p/5521577.html
    下载地址:
    Windows版本: https://neo4j.com/artifact.php?name=neo4j-community-3.5.7-windows.zip
    Linux版本: https://neo4j.com/artifact.php?name=neo4j-community-3.4.1-unix.tar.gz
    Docker安装:https://www.jianshu.com/p/d252bdcc28da
    我这里使用的windows本地安装的方式,注意安装好了修改一下配置文件:

    #安装好之后需要配置一些选项
    # 允许远程连接
    dbms.connectors.default_listen_address=0.0.0.0
    
    # 打开三种连接方式
    # Bolt connector
    dbms.connector.bolt.enabled=true
    dbms.connector.bolt.tls_level=OPTIONAL
    dbms.connector.bolt.listen_address=:7687
    
    # HTTP Connector. There can be zero or one HTTP connectors.
    dbms.connector.http.enabled=true
    dbms.connector.http.listen_address=:7474
    
    # HTTPS Connector. There can be zero or one HTTPS connectors.
    dbms.connector.https.enabled=true
    dbms.connector.https.listen_address=:7473
    
    # 关闭安全认证
    dbms.security.auth_enabled=false 
    

    导入CSV

    官方文档提供的导入方式

    官方文档导入csv的方法

    !!!注意:照着官网的例子被坑了,每次导入的时候都需要使用cypher语法创建对应的节点

    导入csv的时候被导入的csv如果是本地文件必须放在neo4j安装目录的import文件夹中
    例如:C:gwc_appsdev-toolslinux eo4j-community-3.5.7import

    如果你的安装目录不存在import文件夹,就手动创建。

    导入没有head的csv数据

    artists.csv示例文件

    1,ABBA,1992
    2,Roxette,1986
    3,Europe,1979
    4,The Cardigans,1992
    

    导入语句:

    load csv from "file:///artists.csv" as line 
    create(n:Node{id:line[0],name:line[1],birth:line[2]}) 
    return n
    // 使用line[索引]来取得每一列的值
    

    导入有header的关系数据

    分步骤导入

    导入人数据:

    name
    bart
    homer
    marge
    

    导入语句:

    load csv with headers from "file:///family.csv" 
    as row 
    merge (f:Family{name:row.name}) 
    return count(f)
    // 查询一下
    match (f:Family) return f
    

    导入关系数据:

    from_name,relation,to_name
    bart,父子,homer
    bart,母子,marge
    homer,父子,bart
    marge,母子,bart
    homer,夫妻,marge
    marge,夫妻,homer
    

    导入语句:

    load csv with headers from "file:///family-relation.csv" 
    as row 
    match (f1:Family{name:row.from_name})
    match (f2:Family{name:row.to_name})
    merge (f1)-[r:Relation{name:row.relation}]->(f2)
    return count(*)
    // 查询一下
    match (f:Family) return f
    

    一次性导入

    数据:

    id,from_name,relation,to_name
    1,bart,父子,homer
    2,bart,母子,marge
    3,homer,父子,bart
    4,marge,母子,bart
    5,homer,夫妻,marge
    6,marge,夫妻,homer
    

    导入语句:

    load csv with headers from "file:///all.csv" 
    as row
    merge (f1:Family{name:row.from_name})
    merge (f2:Family{name:row.to_name})
    merge (f1)-[r:Relation{name:row.relation}]->(f2)
    return count(*)
    // 查询结果
    match (f:Family) return f
    // 例子:查询所有和bart有关系的节点
    match p=(f:Family{name:"bart"}) -->() return p
    // 查询和bart有1度关系的节点
    match p = (f:Family{name:"bart"})-[*..1]->() return p
    // 查询所有父子关系的节点
    match p=()-[r:Relation{name:"父子"}]->() return p
    
  • 相关阅读:
    最近忙于开发移动OA审批
    开发一个小软件
    VMWare上虚拟机访问宿主机需要注意的一个问题
    Visual Studio 中自带的电子邮件的正则表达式匹配中文的问题 与 \w
    开始应用设计模式
    jQuery与ASP.NET AJAX有冲突吗?
    有感于VMWare
    kvm 母镜像
    相关流程
    master事件处理
  • 原文地址:https://www.cnblogs.com/bartggg/p/12058975.html
Copyright © 2020-2023  润新知