簡體   English   中英

Neo4j:如何將標簽顯示為節點?

[英]Neo4j: How can I display labels as nodes?

我有一個關於 Neo4j 的問題。 我需要在我的圖形數據庫中將標簽顯示為節點 - 就像我的數據庫中只有兩種類型的標簽(例如 Thing 和 Person),我想要有 2 個額外的節點 - Thing 和 Person 與普通節點有關系。

示例 - 我有這個:

圖 1

橙色節點是Person,紅色是Thing。 所以我想為圖中的每個標簽都有額外的標簽節點。 所以我想要這個:

在此處輸入圖片說明

這可以自動創建嗎?

您真的不想這樣做,因為具有 N 個節點的可視化將與特殊的“標簽”節點有 N 個無關的關系,從而很難(甚至不可能)看到實際數據。 為不同的標簽使用不同的顏色是一個很好的折衷方案。

無論如何,結果面板的頂部(在 Neo4j 瀏覽器中)會告訴您哪種顏色屬於哪個標簽,因此您已經可以輕松獲得所需的信息。

[更新]

但是,如果您真的需要做類似的事情,則沒有“自動化”的方式。 但是您可以使用一些 APOC 過程來創建不存儲在數據庫中但可以可視化的虛擬節點和關系

例如,如果您的原始 Cypher 查詢是:

MATCH path=(p:Person)-[r:RELTYPE]->(t:Thing)
RETURN *

您可以使用此查詢生成適當的虛擬節點和關系:

MATCH path=(p:Person)-[r:RELTYPE]->(t:Thing)
WITH COLLECT(path) AS paths, COLLECT(DISTINCT p) AS ps, COLLECT(DISTINCT t) AS ts
CALL apoc.create.vNode(['V_Label'], {label: 'Person'}) YIELD node AS pLabel
CALL apoc.create.vNode(['V_Label'], {label: 'Thing'}) YIELD node AS tLabel
UNWIND ps AS person
CALL apoc.create.vRelationship(person, 'IS', {}, pLabel) YIELD rel AS pRel
WITH paths, ts, pLabel, tLabel, COLLECT(pRel) AS pRels
UNWIND ts AS thing
CALL apoc.create.vRelationship(thing, 'IS', {}, tLabel) YIELD rel AS tRel
RETURN *

示例結果可視化:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM