如何在嵌入式neo4j中自动创建索引?

时间:2015-07-23 07:49:49

标签: java indexing neo4j

我想在特定节点的属性上自动索引。 根据此文档,我们必须提供属性名称,并将获得索引。 http://neo4j.com/docs/stable/auto-indexing.html

我有两个节点 node1 node2 ,两者都具有与 name 相同的属性。我想仅对节点 node1 上的属性名称而非 node2 进行索引。如何在运行时执行此操作而不使用CYPHER?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

我找到了neo4j文档,用于使用java代码

在特定节点的属性上创建模式索引

在这里添加代码。这可能会帮助像我这样的人:)

IndexDefinition indexDefinition;
try ( Transaction tx = graphDb.beginTx() ){
Schema schema = graphDb.schema();
indexDefinition = schema.indexFor( DynamicLabel.label( "node1" ) )
        .on( "name" )
        .create();
tx.success();
}

http://neo4j.com/docs/stable/tutorials-java-embedded-new-index.html

答案 1 :(得分:2)

自动索引(顾名思义)会自动索引给定的属性名称。

如果只想为特定节点显式索引name,则使用模式索引是有意义的。这要求node1node2带有不同的标签。

如果这不是一个选项,您可以使用手动索引并确定每个节点应该转到索引的内容。在Cypher中无法写入手动索引,您需要使用Java API或相应的REST Call

我在blog post中总结了Neo4j中不同类型的索引。