一個圖形的 - [:LIKES {頻率:6}] - >冰 b - [:LIKES {頻率:3}] - >比薩餅等
我正在運行此查詢,找出兩個人喜歡的常見食物。如果我總計頻率屬性來爲食物創建一個類似索引,它會正常工作。
START b=node:node_auto_index(name='B')
MATCH p = b-[r1:LIKES]->stuff, someone_else_too -[r2:LIKES]->stuff
WITH b, someone_else_too, r1.frequency + r2.frequency AS likeIndex
RETURN likeIndex ,someone_else_too
ORDER BY likeIndex DESC
但是,我想要做的是找到最低的兩個頻率值(不是最低總數)。所以像這樣的事情(r1.frequency,r2.frequency)。我們的目標是消除偏差,如果對中的一個對特定食物具有非常高的親和力,將會增加類似的排名。
START b=node:node_auto_index(name='B')
MATCH p = b-[r1:LIKES]->stuff, someone_else_too -[r2:LIKES]->stuff
WITH b, someone_else_too, min(r1.frequency,r2.frequency) AS likeIndex
RETURN likeIndex ,someone_else_too
ORDER BY likeIndex DESC
但是,Cypher不會接受該語法。任何建議或解決?見Neo4j的控制檯here
Hi Wes。很抱歉,我正在使用1.9。任何其他想法或解決方法? – Anshul
Btw結果你的控制檯正是我想要的。我的其他擔心是,即使我以某種方式將我的數據庫升級到了2.0,這對於700萬個節點來說是不可能的,但我不太確定Neo4jClient是否支持case/when。 – Anshul
我不認爲沒有非聚合最小函數或某種方式來執行條件的方法是不錯的。您應該可以用700萬個節點升級商店。你有沒有麻煩? –