Neo4j 2.0 + Gremlin + Graphml标签支持

时间:2013-06-28 12:38:05

标签: neo4j gremlin graphml

我正在使用neo4j 2.0来存储大量数据。数据量很大,使用ruby脚本生成并保存在graphml文件中,然后使用Gremlin导入neo4j。

g.loadGraphML('graphml.xml')

使用neo4j 2.0,我希望利用一个节点标签的新酷支持。是否可以通过这种方式指定节点应具有哪些标签?或者我真的必须在所有节点之后进行查询,设置标签。

由于

2 个答案:

答案 0 :(得分:2)

我不相信有一种方法,至少在Blueprints内,这是Gremlin构建的界面。我没有看到为label添加Vertex的方法,也没有在GraphML中看到类似的内容。

也许Neo4j会更新他们的代码,将标签放入蓝图中Vertex的属性中,但目前无法使用Gremlin / Tinkerpop获取/设置标签。

还应该注意的是,蓝图只支持我们所知道的稳定版本的Neo4j,所以在蓝图中还不完全支持像2.0这样的里程碑。

答案 1 :(得分:1)

如果您使用的是Neo4j版本2,则可以通过从Blueprint Vertex获取基础Neo4j节点来设置标签。请注意,这会打破封装并增加对Neo4j的依赖,但这可能是必需的。此外,由于最新版本的Blueprint问题,我仍然无法正确使用此代码,但这就是它的工作方式。

import com.tinkerpop.blueprints.Vertex;
import com.tinkerpop.blueprints.impls.neo4j.Neo4jGraph;
import com.tinkerpop.blueprints.impls.neo4j.Neo4jVertex;
import org.neo4j.graphdb.Node;

// ...

Vertex vertex = graph.addVertex(null);
Neo4jVertex neo4jVertex = (Neo4jVertex) vertex;
Node node = neo4jVertex.getRawVertex();
node.addLabel("SomeLabel");