我实际上是在建立问题: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"!
}
}
但这并不起作用!
答案 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已经为此设计。