Neo4j APOC 触发器和关系属性的手动索引
Neo4j APOC trigger and Manual Index on Relationship Properties
我想设置 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
关系属性(现有的和将来创建的)添加到手动索引而不是预配置的(如['property_1','property_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'}
)
我想设置 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
关系属性(现有的和将来创建的)添加到手动索引而不是预配置的(如['property_1','property_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'}
)