我目前有一些代碼,通過查看各種數據集和模型之間的電子關係。例如,JSESSIONID。建模neo4j中的關係,當他們不知道最初
我想模擬每個用戶與他們必須提交唯一標識符的應用程序的交互。例如,電子郵件地址。
在應用程序的處理日誌中,我看到[email protected]使用帶有JSESSIONID asdfghjkl的應用程序。然後我看到[email protected]也使用JESSIONID asdfghjkl的應用程序。最後,我看到[email protected]使用JSESSIONID qwertyuiop。
在我的代碼中,我很容易處理日誌,並將[email protected]和[email protected]寫爲Nodes,然後在它們之間寫入JSESSIONID關係。
MERGE (a:EMAIL {label:[email protected]}) MERGE (b:EMAIL {label:[email protected]}) MERGE (a)-[:asdfghjkl]-(b)
但是,我不知道在規模上做到這一點的最佳方式。 (即應用程序日誌大小爲1TB)。限制是內存 - 我無法找到所有使用asdfghjkl作爲SessionID而不處理所有數據的電子郵件地址,所以我無法通過內存限制寫出它們之間的關係。
我真的很想做的是如如下寫出來的東西,但是這顯然失敗:
MERGE (a:EMAIL {label:[email protected]}) (a)-[:asdfghjkl]
再後來: MERGE(B:EMAIL {標籤:[email protected]} )(b) - [:asdfghjkl]
我可以在事後跟查詢創建這些關係嗎?
不幸的是,我認爲你是對的,我已經傾斜的方式。因爲我的圖表可能會變得相當大,所以我希望能夠簡化它(至少用於圖形查看)。鑑於你建議的數據模型,有沒有什麼方法可以查詢我將JSESSION id作爲關係而不是節點?即,(a) - [:jsid] - (b)而不是(a) - (jsid) - (b)? – mzimmerman
我不這麼認爲。特別是因爲關係需要兩個節點,所以在Neo4j中不允許懸掛關係,所以如果只有一個節點正在使用會話ID,那麼您將無法保存此信息。此外,你需要弄清楚這將如何擴展與多個電子郵件節點使用相同的ID。如果有5個,你如何模擬這個?互連所有5個節點?這似乎並不高效。你需要創建一些關係鏈。您也無法通過會話ID進行快速查找,至少不能使用模式索引。傳統索引雖然可以工作。 – InverseFalcon