Neo4j APOC触发器和关系属性手动索引

时间:2018-03-08 21:22:41

标签: indexing neo4j cypher neo4j-apoc

我想设置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}}在上述例子中)?

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'}
)