@contribute
2016-07-01T04:54:29.000000Z
字数 2019
阅读 1603
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<>();// idvertexValue.put("id","vwjglkjvqfdj");// labelvertexValue.put("label","person");// propertiesList<String> properties = new ArrayList<>();properties.add("name_single_vwjglkjvqfdj");properties.add("age_single_vwjglkjvqfdj");vertexValue.put("properties",);// inESet<String> inE = new HashSet<>();inE.add("sdafb_knows_vwjglkjvqfdj");vertexValue.put("inE",inE);// outESet<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 | 任意对象值 |