【发布时间】:2014-08-24 06:38:34
【问题描述】:
例如,假设我的查询是:
match (u:User) Where u.LivesIn:'Los Angeles' OR u.From:'Miami' OR u.Status:'Single' OR 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
如果可以的话,还请说明如何处理人际关系。谢谢。
【问题讨论】:
-
最好将其建模为单独的节点而不是属性\。就像单身/已婚可以是 2 个节点,纽约/LA 可以是 2 个其他节点。都是由关系联系起来的。然后你可以轻松地做你想做的事..
-
是的,这听起来更好,但我不确定如何使用 OR 与您提到的关系编写相同的查询。但是如果我确实使用关系,我将如何计算匹配的属性?
-
您可以创建单独的节点,而不是将其作为节点属性保存,这些节点将被用户节点喜欢。检查我的解决方案以获得更清晰的理解。