我的学士论文的一部分是将.nt文件(海龟格式)加载到neo4j数据库中,在阅读它并寻找可能的实现后,我发现OpenRDF的SailRepositoryConnection实现应该像我需要的那样工作,但我遇到了沉重的OOM/GC问题.我使用的库: - 蓝图2.5 - OpenRDF Sesame 2.7.8 - Neo4j 2.0.3
我使用的系统: - Fedora 19 64位 - 4 Gb Ram - Java版本1.7.0_51
我的代码如下:
public void loadFile() throws SailException {
//load file
Neo4j2Graph neo4jGraph = new Neo4j2Graph(this.DB_DIRECTORY);
BatchGraph<TransactionalGraph> neo = new BatchGraph<TransactionalGraph>(neo4jGraph, VertexIDType.NUMBER, 1);
GraphSail sail = new GraphSail( neo4jGraph );
sail.initialize();
SailRepositoryConnection connection;
try {
connection = new SailRepository( sail ).getConnection();
URL url = f.toURI().toURL(); // getClass().getResource( this.f.getCanonicalPath() );
// System.out.println( "Loading " + url + ": " );
connection.add(url, null …Run Code Online (Sandbox Code Playgroud) 我正在设置一个 Java Enterprise 1.7 项目,该项目将 TinkerPop 3 和 Titan 0.5 与 Cassandra 一起使用。
一般的想法是:
我有很多悬而未决的问题,我想寻求最佳实践、建议和示例。
这个基本配置最终会放在 github ot bitbucket 中,为其他项目做好准备。
如何编写遍历使用Gremlin TinkerPop 3来查找没有传入边的所有顶点?
作为后续跟踪,我还需要找到一个没有外边缘的顶点.
如何编写查询在我的图表上运行,如果没有路径只穿过每个边缘一次并返回起始点,则输出'false'.
在Gremlin-Groovy中,给定一个TinkerVertex对象,检索与其属性中的键对应的值的最清晰/最快的方法是什么,如果不存在则返回默认值(例如null)?
这就是我目前的做法:
def eval(vertex, field) {
prop = vertex.property(field)
prop.isPresent() ? prop.value() : null
}
Run Code Online (Sandbox Code Playgroud)
当顶点没有所需的字段时会vertex.property(field).value()产生异常,所以我不得不添加该条件.
即使它有点短,这个操作一直都在进行,这让我感到困惑,因为我还没有找到更多的"gremlinish"解决方案.
我想知道是否有可能使用TinkerPop 3为内存中的TinkerGraph定义内存中的模式约束.因此,如果不允许某些内容,它将抛出像DSE Graph和Titan这样的异常.现在架构是由插入定义的,所以如果有可能为TinkerGraph提供可选的架构会很好
谢谢!
我正在使用 gremlin 控制台 v3.3.1。使用教程中的“现代”图:http : //tinkerpop.apache.org/docs/current/tutorials/getting-started/
用这个创建图形:
gremlin>graph = TinkerFactory.createModern()
gremlin>g = graph.traversal()
Run Code Online (Sandbox Code Playgroud)
我可以找到所有像这样知道“vadas”的人:
g.V().hasLabel('person').has('name', 'vadas').in('knows').hasLabel('person').valueMap()
Run Code Online (Sandbox Code Playgroud)
我可以找到所有创建“lop”软件的人:
g.V().hasLabel('software').has('name', 'lop').in('created').hasLabel('person').valueMap()
Run Code Online (Sandbox Code Playgroud)
我可以找到所有知道“vadas”或通过联合操作创建“lop”的人:
g.V().union(
g.V().hasLabel('person').has('name', 'vadas').in('knows').hasLabel('person'),
g.V().hasLabel('software').has('name','lop').in('created').hasLabel('person')
).dedup().valueMap()
Run Code Online (Sandbox Code Playgroud)
但我不知道如何找到所有知道“vadas”并创建“lop”的人。基本上我想要一个 INTERSECT 操作(我认为),但是我找不到这样的东西。
有什么帮助吗?
可以在Gremlin控制台上将自定义ID提供给新顶点,如下所示:
gremlin> g.addV('person').property(id, 1234)next()
==>v[1234]
Run Code Online (Sandbox Code Playgroud)
在Java客户端中,可以按照以下步骤进行操作:
graph.addVertex(T.id, customId);
Run Code Online (Sandbox Code Playgroud)
(其中T为org.apache.tinkerpop.gremlin.structure.T)
gremlin_python是否有与T.id等效的形式,以简化上述形式?
非常感谢。
我是小精灵的新手。
我正在尝试获取(直接或间接)连接到给定顶点的所有节点。
例如:图中的
一个这样的集群。
AD
AF
FB
BC
BG
GH
GI
第二个集群像这样在图中。
JK
JL
我的要求当我搜索节点“B”时,我只需要获取 B(无边方向)的所有连接顶点。
ex 输出:A、D、F、B、C、G、H、I
当我搜索 J.
ex outpu:J,k,L
任何帮助将不胜感激,提前致谢。
我正在使用 JanusGraph 将顶点添加到 cassandra 支持的数据库中,我注意到在添加顶点时存在很大的性能差异(1)JanusGraph java 库提供的 addVertex() 方法 vs (2) addV( ) gremlin 遍历函数。为什么会有这样的差异?
我使用JanusGraph版本0.2.0与cql作为存储后端。我创建了一个测试,该测试使用三种方法比较将顶点添加和提交到图形所需的时间(以毫秒为单位):(1)addV()gremlin 函数,(2)addV()gremlin 函数,然后执行一个next()步骤来获取新创建的顶点,以及(3 ) JanusGraphaddVertex()方法。我从一个完全空的图形存储开始。我使用的代码可以在下面找到。
final Builder builder = JanusGraphFactory.build()
.set("storage.backend", "cql")
.set("storage.hostname", Config.get(CommonConfig.cassandra_host));
final JanusGraph graph = builder.open();
long nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel");
graph.traversal().tx().commit();
System.out.println("(1) - Add vertex traversal only took " + (TimeUtils.nowMillis() - nowMillis) + " millis");
nowMillis = TimeUtils.nowMillis();
graph.traversal().addV("myLabel").next();
graph.traversal().tx().commit();
System.out.println("(2) - Add vertex traversal and next took …Run Code Online (Sandbox Code Playgroud) tinkerpop ×10
gremlin ×8
janusgraph ×2
tinkerpop3 ×2
titan ×2
architecture ×1
cassandra ×1
graph ×1
graphic ×1
groovy ×1
jakarta-ee ×1
java ×1
neo4j ×1
python ×1