栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

Janusgraph学习记录(1)

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Janusgraph学习记录(1)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Janusgraph学习记录(1)
前言

学习Janusgraph的相关记录,全部都是实操,概念不赘述。


一、JanusGraph安装和gremlin基本语法

因为是测试学习gremlin语句的使用,所以试用了janusgraph,总体感觉官方文档有点点小坑,如果想尝试gremlin语句,更推荐hugegraph,感觉更容易上手些。
使用的版本是:janusgraph–full-0.6.1,主要原因是预先配置了 Cassandra 和 Elasticsearch,作为存储和检索,适合懒人。通过 WebSocket 连接到 JanusGraph 服务器,具体步骤如下:服务器解压生成的janusgraph–full-0.6.1路径下输入:bin/janusgraph.sh start

$ bin/janusgraph.sh start
Forking Cassandra...
Running `nodetool statusthrift`.. OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9300)... OK (connected to 127.0.0.1:9300).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.

示例脚本会顺带启动 Cassandra 和 Elasticsearch。
然后可以在linux环境下,janusgraph–full-0.6.1路径下输入bin/gremlin.sh,运行 Gremlin 控制台,我是参照《图数据库实战》这本书的实例导入了一个小小的数据集到数据库,bin/gremlin.sh -i /$你的文件路径/code/chapter03/scripts/3.1-simple-social-network.groovy,这样更方便上手。

输入g,显示遍历源,确认启动无误。
可以再linux环境中做简单查询,
比如:

g,表示遍历源,时所有遍历的基石,tinkerpop默认都是g,g=graph.traversal().这个变量可自行修改。

V()/E(),操作返回一个包含图中每个顶点/每条边的迭代器。基本的增删改查都得有这步操作。

hasLabel(label),返回匹配指定标签类型的所有顶点和边。
has(key,value),返回匹配指定键-值对的所有顶点或边。
has(label,key,value),返回同时匹配标签类型和指定键-值对的所有顶点或边,功能与g.V().hasLabel(‘person’).has(‘first_name’,‘Ted’)一致
注意:可以多次使用has()操作,相当于and,可同时查多个属性。

out(label)当前点带指定标签的出边,向外的方向。如果括号里不加label,则表示遍历所有出边。
in(label)当前点带指定标签的入边,向内的方向。如果括号里不加label,则表示遍历所有入边。
both(label)同时查找出入边。如果括号里不加label,则表示遍历所有出/入边。

values(keys)返回指定属性值。
valueMap(keys)返回键-值对。

后面的测试都在python上实现,更贴近实战使用。

二、python连接、测试 1.安装 Gremlin-Python及基本使用:

pycharm的settings里添加gremlin,默认用的最新的包

pip install gremlinpython==3.6.0

2.测试实例

官网给的实例有问题,有的包导入不对,我稍微调整了一下

from gremlin_python.structure.graph import Graph
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection

graph = Graph()
connection = DriverRemoteConnection('ws://192.168.171.77:8182/gremlin', 'g')
# The connection should be closed on shut down to close open connections with connection.close()
g = graph.traversal().withRemote(connection)
# Reuse 'g' across the applicatio
herculesAge = g.V().has('person','first_name','Ted').out('friends').next()
print(herculesAge)
connection.close()

注意,查询语句是基于我先前导入的数据写的,可根据自己导入的数据修改。如果没有数据,是查不出结果的。。。记得查询语句要加.next(),后面会介绍,你先加着试试。

运行,显示点的唯一id值。
到这里,基本的链接和简单的测试就完成了。

总结

欢迎评论区交流一起进步。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/898230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号