Java - 检查索引是否已经存在neo4j(if子句)

时间:2014-05-03 10:41:27

标签: java neo4j

我实际上是在建立问题:How to check if a schema index already exists for a node's property in neo4j?

但是我无法找到如何执行实际的if子句。例如:

label = DynamicLabel.label("Label");
Iterable<IndexDefinition> indexes = schema.getIndexes(label);
for(IndexDefinition index : indexes) {
    if(index.equals(schema.indexFor(label).on("id"))) {
        // index exists on property "id" on label "Label"!
    }
}

但这并不起作用!

1 个答案:

答案 0 :(得分:3)

以下代码段应该有所帮助:

label = DynamicLabel.label("Label");
Iterable<IndexDefinition> indexes = schema.getIndexes(label);
for(IndexDefinition index : indexes) {
    for (String key: index.getPropertyKeys()) {
         if (key.equals("id")) {
              return true; // index for label and property exists
         }
    }
}
return false; // no matching schema index

请注意,在Neo4j 2.0 / 2.1中,每个索引只有一个属性。尚不支持多属性索引 - 但API已经为此设计。