когда я удаляю связь в 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
, однако я не понимаю, как ее использовать в этом контексте. Какое имя я должен указать?