当我在 Neo4J 3.x 中删除关系时,我希望它也从使用 APOC 创建的自动索引中删除。
但是,我没有看到任何删除 APOC 中的关系的程序。我只看到removeRelationshipByName
,但我必须指定关系的名称,如果我有按类型的关系怎么办?如果关系没有被删除,当我尝试按关系属性使用此索引进行搜索时,我会收到错误消息。它在索引中找到关系,但它不存在。
为了更好地了解,我创建了现有关系的索引,使用
MATCH ()-[r]->() CALL apoc.index.addRelationship(r,['user','context','statement','gapscan']) RETURN count(*);
这会为多种关系类型创建多个索引。
我还设置了一个触发器,以便每次添加关系时(无论是什么类型)都会将其添加到相应类型的索引中
CALL apoc.trigger.add('RELATIONSHIP_INDEX',"UNWIND {createdRelationships} AS r MATCH ()-[r]->() CALL apoc.index.addRelationship(r,['user','context','statement','gapscan']) RETURN count(*)", {phase:'after'})
现在,我想做的是设置一个触发器,当它们被删除时,它会从索引中删除关系。但是没有程序removeRelationship
——只有removeRelationshipByName
——但是,我不明白如何在那种情况下使用它。我应该提供什么名字?