Визуализация сильно связанных компонентов в результате использования Cypher

Я использовал neo4j-mazerunner для анализа отношения strong_connected_components на моем графике. Процесс завершился, и теперь я получил свойство strong_connected_components на своих узлах.

Я использовал следующий запрос, чтобы получить строки узлов различных узлов:

MATCH (n) WHERE has(n.strongly_connected_components)
RETURN DISTINCT "node" as element, n.strongly_connected_components
AS strongly_connected_components
LIMIT 25 UNION ALL MATCH ()-[r]-()
WHERE has(r.strongly_connected_components)
RETURN DISTINCT "relationship" AS element, r.strongly_connected_components 
AS strongly_connected_components LIMIT 25

Я не уверен, как зашифровать запрос графа для визуализации сгенерированных кластеров.

Любая помощь будет оценена.

3 ответа

Решение

Этот запрос должен возвращать 25 кластеров, и вы должны иметь возможность визуализировать каждый кластер в браузере как сильно связанные узлы. Запрос предполагает, что FOO были отношения, указанные для neo4j-mazerunner когда его просят сгенерировать strongly_connected_components ценности.

ПРИМЕЧАНИЕ. Отключите функцию автозаполнения браузера (в правом нижнем углу панели результатов), чтобы увидеть только FOO отношения между узлами в каждом кластере:

MATCH p=(n1)-[:FOO]->()
RETURN n1.strongly_connected_components AS clusterId, COLLECT(p) AS paths
LIMIT 25;

поскольку neo4j-mazerunner назначает то же самое strongly_connected_components значение для всех узлов в одном кластере, этот запрос просто объединяет все пути с одинаковыми strongly_connected_components значение (определяется как clusterId).

Вы можете запросить конкретный идентификатор, используя:

match (n2 {strongly_connected_components:NODE_ID_HERE})-[r:NEXT]->(n) return n,n2 LIMIT 50

Я, вероятно, неправильно понимаю проблему здесь, но это даст вам более полную картину ваших сильно связанных узлов:

MATCH (n) WHERE has(n.strongly_connected_components) MATCH (n)-[*]-() RETURN n
Другие вопросы по тегам