例如,假设我的查询是:
匹配(u:User)其中u.LivesIn:'Los Angeles'或u.From:'Miami'或u.Status:'Single'或u.Job:'Artist'})返回u
我将如何更改查询,以便可以显示一列来统计与查询匹配的属性数。
对于上面的查询,可以说我返回了以下用户:
> User1, Los Angeles, Miami, Single, Artist, (4 attributes matched query
> so show a 4 in column)
>
> User2, Los Angeles, Miami, Married, Artist, (3 attributes matched
> query so display 3 in column)
> User3, Los Angeles, New York, Married, Dancer, (1 attributes matched
> query so display 1 in column)
我用它来建立一种排名系统
我试图得到这个:
u.UserID u.MatchingAttributes User1 4 User2 3 User3 1
另外,如果可以的话,还请奖励如何通过人际关系做到这一点。谢谢。
您可以使用一堆CASE
语句:
MATCH (u:User)
WITH u.UserID AS User, CASE WHEN u.LivesIn = 'Los Angeles' THEN 1 ELSE 0 END AS c1,
CASE WHEN u.From = 'Miami' THEN 1 ELSE 0 END AS c2,
CASE WHEN u.Status = 'Single' THEN 1 ELSE 0 END AS c3,
CASE WHEN u.Job = 'Artist' THEN 1 ELSE 0 END AS c4
RETURN User, c1 + c2 + c3 + c4 AS Matching
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句