我有一個看起來像這樣的數據集(Artefact) - [HAS] - (關鍵字),關鍵字可以被artefacts多次共享。我試圖達到的是;Neo4j - 獲取類型的所有相關節點並創建新的關係
返回大多數相互關聯的關鍵字節點,與關鍵詞有關的假象的數量,關鍵字節點之間的重疊計數以及到另一個關鍵字(關鍵字) - (artefact) - (關鍵字)的跳數,兩個「共享」關鍵字。
換句話說,在兩個關鍵字節點之間的相交內的人工記錄計數。例如,給定這三個僞影節點
1)匙(關鍵字; 金屬,食品)
2)劍(關鍵字; 金屬,戰鬥)
3)叉(關鍵字; 金屬,食品)
Th因此,e查詢將返回關鍵字節點,與關鍵字(3,勺子,劍和叉)有關的人工製品的計數,關鍵字節點(金屬與食物有2個間接連接,以及與戰鬥有1個)有關的關鍵詞的計數。
一旦我解決了這個問題,爲了提高速度,我意識到這是一個很大的查詢,請在關鍵字之間創建一個related_to關係,並將它們共享的artefact的數量計算在內。只能選擇1個紀錄創造這種關係,以測試它的工作原理:)(因此限制1)
MATCH (n:Keyword)-[r*2]-(x:Keyword)
WITH n, COUNT(r) AS c, x
LIMIT 1
MERGE (n)-[s:RELATED_KEY]-(x) SET s.weight = c
我使用的Neo4j社區版(2.1.6),
非常感謝,安迪