我想设置Neo4j APOC触发器,将所有关系属性添加到手动索引,如下所示:
CALL apoc.trigger.add('HAS_VALUE_ON_INDEX',"UNWIND {createdRelationships} AS r MATCH (Decision)-[r:HAS_VALUE_ON]->(Characteristic) CALL apoc.index.addRelationship(r,['property_1','property_2']) RETURN count(*)", {phase:'after'})
问题在于我不知道HAS_VALUE_ON
关系属性的确切集合,因为我使用Spring Data Neo4 5的动态属性方法。
是否可以更改此触发器声明,以便能够将所有HAS_VALUE_ON
关系属性(现有的和将来创建的属性)添加到手动索引而不是预先配置的属性(如{{ 1}}在上述例子中)?
答案 0 :(得分:2)
如果您事先不知道这组属性,那么您可以使用keys
函数将创建的关系的所有属性添加到索引中:
CALL apoc.trigger.add(
'HAS_VALUE_ON_INDEX',
'UNWIND {createdRelationships} AS r MATCH (Decision)-[r:HAS_VALUE_ON]->(Characteristic)
CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)',
{phase:'after'}
)