JanusGraph 举例
JanusGraph 是一个开源的分布式图形数据库,它被设计用来处理大规模的数据。下面是一个使用 JanusGraph 的简单示例:
import org.janusgraph.core.*;
import org.janusgraph.core.schema.JanusGraphManagement;
public class JanusGraphExample {
public static void main(String[] args) {
// 创建图实例
JanusGraph graph = JanusGraphFactory.open("conf/janusgraph-cassandra-es.properties");
// 获取 TraversalSource 实例
GraphTraversalSource g = graph.traversal();
// 生成 schema
JanusGraphManagement mgmt = graph.openManagement();
if (!mgmt.containsVertexLabel("person")) {
mgmt.makeVertexLabel("person").make();
}
if (!mgmt.containsPropertyKey("name")) {
mgmt.makePropertyKey("name").dataType(String.class).make();
}
mgmt.commit();
// 添加顶点(节点)
JanusGraphVertex tom = graph.addVertex(T.label, "person", "name", "Tom");
JanusGraphVertex bob = graph.addVertex(T.label, "person", "name", "Bob");
// 添加边(关系)
tom.addEdge("knows", bob);
// 提交事务
graph.tx().commit();
// 运行查询
g.V().hasLabel("person").has("name", "Tom").out("knows").values("name")
.forEachRemaining(System.out::println); // Should print: Bob
// 关闭图
graph.close();
}
}
上面的 Java 程序创建了一个包含两个顶点(Tom 和 Bob)和一条边的简单图形数据。然后,该程序查询了 "Tom" 顶点通过 "knows" 边连接到哪些顶点,并打印出这些顶点的名字。
注意:上述代码示例假设你已经配置了 janusgraph-cassandra-es.properties
文件来指定使用 Cassandra 作为存储后端并且使用 Elasticsearch 作为索引后端。如果你使用不同的设置,需要修改此文件路径以匹配你