@contribute
2016-07-01T04:54:29.000000Z
字数 2019
阅读 1476
tinkerpop
vertexcache用于存储图数据结构中点与点、点与边、点与属性的关系。
cache中的结构为IgniteCache<String, Map<String, Object>> vertexCache
存储内容 | 键 | 类型 | 结构设计 | 说明 |
---|---|---|---|---|
vertex的Id | id | String |
保证唯一,中间不能包含_ 字符。 |
vertex点的唯一表示,为String 类型, |
vertex的标签 | label | String |
由用户提供 | vertex所属的标签。 |
vertex的属性 | properties | List<String> |
参考edge property设计 |
vertex的所有属性,存储属性的id。 |
vertex的入边 | inE | Set<String> |
参考edge设计 |
存储vertex所有入边的id。 |
vertex的出边 | outE | Set<String> |
参考edge设计 |
存储vertex所有出边的id。 |
举例:
有一个点:
点的id:id=vwjglkjvqfdj
标签:person
属性:name_single_vwjglkjvqfdj
,age_single_vwjglkjvqfdj
出边:vwjglkjvqfdj_knows_sadfewfds
入边:sdafb_knows_vwjglkjvqfdj
Map<String,Object> vertexValue = new HashMap<>();
// id
vertexValue.put("id","vwjglkjvqfdj");
// label
vertexValue.put("label","person");
// properties
List<String> properties = new ArrayList<>();
properties.add("name_single_vwjglkjvqfdj");
properties.add("age_single_vwjglkjvqfdj");
vertexValue.put("properties",);
// inE
Set<String> inE = new HashSet<>();
inE.add("sdafb_knows_vwjglkjvqfdj");
vertexValue.put("inE",inE);
// outE
Set<String> outE = new HashSet<>();
outE.add("vwjglkjvqfdj_knows_sadfewfds")
vertexValue.put("outE",outE);
vertexCache.put("vwjglkjvqfdj",vertexValue)
edgeCache用于存储图数据结构中边与属性之间的关系
cache中的结构为IgniteCache<AffinityKey<String>, Object> edgeCache;
存储内容 | 键 | 类型 | 结构设计 | 说明 |
---|---|---|---|---|
edge的Id | id | String |
outVid + _ + label + _ + inVid |
|
edge的properties | List<String> |
Object | 包此边的所有属性id |
举例:
边的入点为:wevwljrjb
边的出点为:sdafb
label=knows
属性id有flkwjf
,lkwvqj
则:边的id为:sdafb_knows_wevwljrjb
,
String edgeId = "sdafb_knows_wevwljrjb";
List<String> edgeProperties = new ArrayList<String>();
edgeProperties.add("flkwjf");
edgeProperties.add("lkwvqj");
edgeCache.put(new AffinityKey<>(edgeId,"wevwljrjb"),edgeProperties);
edgeCache.put(new AffinityKey<>(edgeId,"sdafb"),edgeProperties);
用于存储图数据结构中点的属性。
cache中的结构为IgniteCache<AffinityKey<String>, Object> vertexPropertyCache;
属性名 | 属性值 | 说明 |
---|---|---|
id | propertyName + "_" + Cardinality + "_" + vertexId |
保证id的唯一性,同时又包含所需要的信息。 |
value | Object | 任意对象值 |
用于存储图数据结构中边的属性。
cache中的结构为IgniteCache<AffinityKey<String>, Object> edgePropertyCache;
属性名 | 属性值 | 说明 |
---|---|---|
id | propertyName + "_" + "single" + "_" + edgeId |
保证id的唯一性,同时又包含所需要的信息。 |
value | Object | 任意对象值 |