• JanusGraph入门案例


    JanusGraph入门案例

    1、安装JanusGraph

    # 安装ES 下载镜像
    docker pull elasticsearch:6.8.13
    
    # 启动容器
    docker run -di --name=elasticsearch6813 -p 9200:9200 -p 9300:9300 -v D:\dev\docker\elasticsearch\conf\elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v D:\dev\docker\elasticsearch\data:/usr/share/elasticsearch/data -v D:\dev\docker\elasticsearch\plugins:/usr/share/elasticsearch/plugins  elasticsearch:6.8.13
    
    # 下载镜像
    docker pull janusgraph/janusgraph:latest
    
    # 启动容器
    docker run --privileged=true --name janusgraph-default -d -p 8182:8182 janusgraph/janusgraph:latest
    

    2、修改配置文件

    # 把容器中的配置文件拷贝到本地
    docker cp janusgraph-default:/opt/janusgraph/conf/janusgraph-berkeleyje-es.properties /opt/janusgraph/conf
    
    # 查询1中es的ip
    docker inspect elasticsearch6813
    # 找到ipaddress 我的是172.17.0.3
    
    # 修改配置文件
    
    # 使用的db类型
    root.storage.backend = berkeleyje
    # db存放位置
    storage.directory = /tmp/graph
    # 表名
    storage.berkeleyje.table = sanguo
    # 索引类型
    index.search.backend = elasticsearch
    # 索引主机
    index.search.hostname = 172.17.0.3
    index.sanguo.hostname = 172.17.0.3:9200
    gremlin.graph = org.janusgraph.core.JanusGraphFactory
    # 索引名
    index.sanguo.index-name = sanguosha
    # 索引目录
    index.search.directory = /tmp/searchindex
    index.search.elasticsearch.client-only = false
    index.search.elasticsearch.local-mode = true
    

    3、启动客户端

    # 启动客户端
    docker run --rm --link janusgraph-default:janusgraph \
    -e GREMLIN_REMOTE_HOSTS=janusgraph \
    -it janusgraph/janusgraph:latest ./bin/gremlin.sh
    
    
    
    # 加载配置文件 gremlin> 
    graph = JanusGraphFactory.open('/opt/janusgraph/conf/janusgraph-berkeleyje-es-server.properties');
    # 
    gremlin> g = graph.traversal()
    # 添加点
    liubei = g.addV("person").property('name','刘备').property('age',45);
    guanyu = g.addV("person").property('name','关羽').property('age',42);
    zhangfei = g.addV("person").property('name','张飞').property('age',40);
    lvbu = g.addV("person").property('name','吕布').property('age',38);
    shuguo = g.addV("country").property('name','蜀国');
    fthj = g.addV("weapon").property('name','方天画戟');
    sgj = g.addV("weapon").property('name','双股剑');
    qlyyd = g.addV("weapon").property('name','青龙偃月刀');
    zbsm = g.addV("weapon").property('name','丈八蛇矛');
    
    # 维护关系
    g.addE('brother').from(g.V(liubei)).to(g.V(guanyu));
    g.addE('brother').from(g.V(guanyu)).to(g.V(liubei));
    
    g.addE('brother').from(g.V(zhangfei)).to(g.V(guanyu));
    g.addE('brother').from(g.V(guanyu)).to(g.V(zhangfei));
    
    g.addE('brother').from(g.V(zhangfei)).to(g.V(liubei));
    g.addE('brother').from(g.V(liubei)).to(g.V(zhangfei));
    
    
    # 维护关系 这里也可以使用g.V(ID)的形式
    g.addE('use').from(liubei).to(sgj);
    g.addE('use').from(zhangfei).to(zbsm);
    g.addE('use').from(guanyu).to(qlyyd);
    g.addE('use').from(lvbu).to(fthj);
    
    # 维护关系
    g.addE('battled').from(liubei).to(lvbu);
    g.addE('battled').from(lvbu).to(liubei);
    
    g.addE('battled').from(zhangfei).to(lvbu);
    g.addE('battled').from(lvbu).to(zhangfei);
    
    g.addE('battled').from(guanyu).to(lvbu);
    g.addE('battled').from(lvbu).to(guanyu);
    
    # 查看所有点
    g.V()
    
    # 查看所有关系
    g.E()
    
    # 退出客户端:exit 客户端里的命令都是:xx 例如:help
    

    4、可视化工具查看

    # 下载镜像
    docker pull fenglex/janusgraph-visualization
    # 启动容器
    docker run -itd -p 80:8888 fenglex/janusgraph-visualization
    #进入可视化页面
    http://localhost
    

    配置ID、端口

    # web客户端配置的数据库和上面不一样 所以要手执行一下命令 web客户端 这个命令需要一条一条执行
    liubei = g.addV("person").property('name','刘备').property('age',45);
    guanyu = g.addV("person").property('name','关羽').property('age',42);
    zhangfei = g.addV("person").property('name','张飞').property('age',40);
    lvbu = g.addV("person").property('name','吕布').property('age',38);
    shuguo = g.addV("country").property('name','蜀国');
    fthj = g.addV("weapon").property('name','方天画戟');
    sgj = g.addV("weapon").property('name','双股剑');
    qlyyd = g.addV("weapon").property('name','青龙偃月刀');
    zbsm = g.addV("weapon").property('name','丈八蛇矛');
    
    # 维护关系 web客户端由于一条一条执行 所以只能用g.V(id) 不能用变量名
    g.addE('brother').from(liubei).to(guanyu);
    g.addE('brother').from(guanyu).to(liubei);
    
    g.addE('brother').from(zhangfei).to(guanyu);
    g.addE('brother').from(guanyu).to(zhangfei);
    
    g.addE('brother').from(zhangfei).to(liubei);
    g.addE('brother').from(liubei).to(zhangfei);
    
    
    # 维护关系 web客户端由于一条一条执行 所以只能用g.V(id) 不能用变量名
    g.addE('use').from(liubei).to(sgj);
    g.addE('use').from(zhangfei).to(zbsm);
    g.addE('use').from(guanyu).to(qlyyd);
    g.addE('use').from(lvbu).to(fthj);
    
    # 维护关系  web客户端由于一条一条执行 所以只能用g.V(id) 不能用变量名
    g.addE('battled').from(liubei).to(lvbu);
    g.addE('battled').from(lvbu).to(liubei);
    
    g.addE('battled').from(zhangfei).to(lvbu);
    g.addE('battled').from(lvbu).to(zhangfei);
    
    g.addE('battled').from(guanyu).to(lvbu);
    g.addE('battled').from(lvbu).to(guanyu);
    
    # 查看所有点
    g.V()
    
    # 查看所有关系
    g.E()
    

    参考:[[全程实测]如何新建一张JanusGraph图?(详)](

  • 相关阅读:
    团队管理(八)
    VantUI 二级标签栏
    easyui combobox动态添加数据的问题
    easyui combobox选中的问题
    读书笔记:周鸿祎我的互联网方法论
    读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 第一部分 1-3
    读书笔记:Information Architecture for the World Wide Web, 3rd Edition 北极熊 简介
    网页设计中11 款最好CSS框架
    科普:google的数字图书馆
    实用总结,如何截取翻屏网页
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/15573229.html
Copyright © 2020-2023  润新知