2015-06-01 94 views
0

我想保留所有瀏覽歷史,如何在節點之間創建多個加權邊緣

要計算瀏覽頁面之間的行爲。

所以我設計了以下圖表顯示我的想法,

正如你所看到的,有4邊之間網頁A網頁B

所以我怎麼可能創建那種關係和節點?

我怎麼能得到

  • 平均瀏覽時間(20分鐘
  • 分鐘瀏覽時間
  • 最大瀏覽時間

任何建議和想法?

感謝

+0

你的設計代替avg可以與返工做。我會說最好的方法是在頁面節點之間有一個「瀏覽」節點,這是您存儲時間的地方。像你這樣設計它會大大限制你可以在你的圖上執行的查詢類型 – joe

+0

你的意思是每個瀏覽請求應該有一個新的節點?節點如何用持續時間從pageA到pageB表示。我是新手neo4j,只是couln't不理解它。 – newBike

+0

「瀏覽」節點將具有包含時間的屬性「持續時間」。在Cypher中,您可以使用create(p1:Page {Name:「Page1」}) - [:from] - >(b:Browse {Duration:10}) - [:to] - >(p2:Page {Name: Page2「})return p1,p2 – joe

回答

1

我有點困惑。這種關係意味着什麼?它是否代表用戶瀏覽到頁面B之前花費在頁面A上的時間量?

剛從你的模型和你的目標,也許這樣的事情會工作?

MATCH (a:Page)-[r:browsed_to]->(b:Page) 
RETURN avg(r.time_spent) 

最低和最高時,你可以用minmax

+0

是的,這是你的意思,所以我怎麼能創建頁面之間的關係?只需爲每個瀏覽操作創建關係邊緣? – newBike

+0

是的,你當然可以用'MATCH ... CREATE start - [:browsed_to {time_spent:{time_spent_param}}] - > end'來做到這一點。我不確定你的用例,但是可能有用的是讓節點成爲訪問。所以你可以有'(:Visit) - [:NEXT_VISIT] - >(:Visit)'和'(:Visit) - [:AT_URL] - >(:URL)'其中'Visit'節點將有'time_spent'和'URL'節點會有一個像'address'屬性那樣的唯一約束 –

相關問題