簡體   English   中英

neo4j密文作為圖形重構

[英]neo4j cypher text as a graph refactoring

我們有一個圖數據庫,其中文本作為圖。 在系統中,分頁符用(pb)-節點表示。 現在,我想用(頁面)節點指向頁面的開頭和結尾來對頁面進行建模。

帶有單詞的w節點的圖形中的文本示例(n屬性為增量式):

(pb {n:1})-[:NEXT]->(w)-[:NEXT]->(w)-[:NEXT]->(w)-[:NEXT]->
(w)-[:NEXT]->(pb {n:2})-[:NEXT]->(w)-[:NEXT]->(w)-[:NEXT]->
(w)-[:NEXT]->(w)-[:NEXT]->(pb {n:3})-[:NEXT]->(w)-[:NEXT]->
(w)-[:NEXT]->(pb {n:4})

結果應為這些節點添加一條邊:

(pb {n:1})-[:FIRST_CHILD-OF]->(Page)<-[:FIRST_CHILD-OF]->(pb {n:2})
(pb {n:2})-[:FIRST_CHILD-OF]->(Page)<-[:FIRST_CHILD-OF]->(pb {n:3})
(pb {n:3})-[:FIRST_CHILD-OF]->(Page)<-[:FIRST_CHILD-OF]->(pb {n:4})

任何幫助都會很棒。

這是我找到的答案(使用來自這里的信息: 如何以不友好的方式在cypher中找到路徑

// Find pb tags
MATCH (t1:pb})
WITH collect(t1) AS tags

// create unique pairs
UNWIND tags AS x UNWIND tags AS y    
WITH x, y WHERE ID(x) < ID(y)
AND y.n = x.n+1

// create nodes and edges
CREATE (p:Page)
MERGE (y)<-[:FIRST_CHILD_OF]-(p)-[:LAST_CHILD_OF]->(x)
RETURN *;

暫無
暫無

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

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