【发布时间】:2020-07-06 05:10:51
【问题描述】:
我们正在使用 Gremlin 查询 JanusGraph,我还是个初学者。我们现在有这个查询来搜索使用姓名、电话号码或电子邮件地址的用户。
g.V()
.or(
filter({ it.get().value("name").contains(queryStr)}),
filter({ it.get().value("phone").contains(queryStr)}),
filter({ it.get().value("email").contains(queryStr)})
)
.not(has('users','email',email))
.order().by('name').valueMap()
结果如下:
[
{
phone: [ '+63123456789' ],
displayName: [ 'User Name' ],
name: [ 'username' ],
email: [ 'user@example.com' ],
picture: [ '' ]
}
]
查询的问题是我们无法确定您是否已经是用户的朋友。我想添加一个动态属性,如 isFriend、isRequestPending,如果可能的话,它看起来像这样(如果不是,也许类似的东西会做):
[
{
phone: [ '+63123456789' ],
displayName: [ 'User Name' ],
name: [ 'username' ],
email: [ 'user@example.com' ],
picture: [ '' ],
isFriend: [ 'true' ],
isRequestPending: [ 'false' ]
}
]
提供更多信息: 边缘的标签称为“朋友”。将用户添加为朋友时,我们将朋友边缘分配给用户,例如:
A --friend--> B
如果用户 B 接受了请求,那么我们将边缘分配给用户 A
B --friend--> A
感谢那些可以提供帮助的人。
【问题讨论】:
标签: gremlin janusgraph gremlin-server