Я пробую алгоритм графа Степень .
В моей модели есть несколько меток узлов и отношений, одна из которых "Entity", и позволяет называть другие метки "Random".
Я хочу создать проекцию графа, который в основном удаляет все другие узлы, кроме «сущности», но сохраняет ребра / отношения, которые были бы возможны с узлами.
например, еслиу нас есть (e1:Entity) -> (:Random) -> (:Random) -> (e2:Entity)
, тогда результат будет (e1) -> (e2)
или
(e1:Entity)-[*..5]-(e1:Entity)
дает нам (e1)--(e2)
Где путь между двумя объектами не имеетСущность между ними.
Проблема, с которой я столкнулся в своем нынешнем заявлении о шифровании, заключается в том, что оно кажется медленным или не возвращает то, что я ожидаю.Поэтому мне интересно, пропустил ли я что-то.
Это то, что я сейчас использую для создания проекции:
MATCH p = (start:Entity)-[*..5]-(end:Entity)
WHERE start.id <> end.id
WITH start, end, [n IN nodes(p) WHERE 'Entity' in labels(n) | n] as entities
WHERE size(entities) = 2
RETURN id(start) as source, id(end) as target