【发布时间】:2018-02-20 20:58:58
【问题描述】:
当我在 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——但是,我不明白如何在这种情况下使用它。我应该提供什么名字?
【问题讨论】:
标签: neo4j cypher neo4j-apoc