我有这种情况,其中每个(源)Entity
都有Properties
一个指向另一个的目标Entity
。这些属性映射组合在一起。我想要做的是查询那些具有相应目标的特定属性但在同一组下的实体。
超图会这样(矩形是超边):
JSON
看起来像这样:
{
id: 1, label: "Entity",
propertyGroups: [
{
propertyGroupUuid: GroupUuid1,
property: {id: 1, label: "Property", name: "aName1"},
target: {id: 2, label: "Entity"}
},
{
propertyGroupUuid: GroupUuid2,
property: {id: 2, label: "Property", name: "aName2"},
target: {id: 3, label: "Entity"}
},
{
propertyGroupUuid: GroupUuid2,
property: {id: 3, label: "Property", name: "aName3"},
target: {id: 4, label: "Entity"}
}]
}
图数据库中最平坦的版本可能如下所示:
虽然它的最扩展版本可能看起来像这样:
所以如果我想:
- 获取所有
Entities
具有相同 PropertyGroupUuid“目标”Property 2
和下的所有内容,我应该分别返回Property 3
Entity 3
Entity 4
Entity 1
- 获取所有
Entities
具有相同 PropertyGroupUuidProperty 1
并Property 2
在同一 PropertyGroupUuid 下的“目标”Entity 2
,Entity 3
我不应该再回来Entity 1
如何使用 gremlin 对图形的两个版本做到这一点,以及使用正确的索引(如 DSE Graph 合并的索引),哪一个更灵活/性能更好?有没有我没有想到的更好的选择?如果答案详细且解释清楚,我将提供至少 50 的赏金 :)
谢谢!