微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 GraphDB 查询详细信息

如何解决从 GraphDB 查询详细信息

我们正在尝试在 Graphdb 中实现面向客户的详细信息,通过单个查询,我们可以获取客户的详细信息,例如他的地址、电话、电子邮件等。我们已经使用 had address 构建了它,有电子邮件边缘..

g.addV('member').property('id','CU10611972').property('CustomerId','CU10611972').property('TIN','xxxx').property('EntityType','Person').property('pk','pk')

g.addV('email').property('id','CU10611972E').property('pk','pk')

g.addV('primary').property('id','CU10611972EP').property('EmailPreference','Primary').property('EmailType','Home').property('EmailAddress','SNEHA@GMAIL.COM').property('pk','pk')

g.V('CU10611972').addE('has Email').to(g.V('CU10611972E'))

g.V('CU10611972E').addE('has Primary Email').to(g.V('CU10611972EP')

这就是我们与客户建立电子邮件关系的方式。同样,我们与地址和电话有关系。所以现在我们正在使用这个命令来获取与该客户相关的 json 以发送电子邮件

g.V('CU10611972').out('has Email').out('has Primary Email')

对于完整的客户详细信息,我们对每个 Vertex、电话、电子邮件和地址使用联合..

能否请您建议是否有一种有效的方法查询此详细信息?

解决方法

这实际上归结为两件事。

  1. 一般图形数据建模
  2. 您使用的图形数据库支持和不支持的内容。

使用 Gremlin 有几种方法可以为单个顶点建模此数据。

  1. 如果数据库支持,请使用 ['home','mobile'] 等名称列表,并使用元属性为每个名称附加电话号码。
  2. 我所知道的许多 Gremlin 实现都选择不支持元属性。在这些情况下,您有几个选择。 (a) 有一个用于“家庭”的属性和另一个用于“移动”的属性。如果任何一个都不知道,您要么无法创建该属性,要么为其指定一个值,例如“未知” (b) 使用带前缀的字符串,例如 ["Home:123456789","Mobile:123456789] 并将它们存储在集合或列表(多属性)中,并使用 startingWith 谓词在 Gremlin 中访问它们。例如 {{ 1}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。