文档 1.5 版本已不再积极维护,你当前浏览的是一份归档快照。
最新文档请参阅 最新版本 。
VertexLabel API 1.3 VertexLabel 假设已经创建好了1.1.3中列出来的 PropertyKeys
Params说明
id:顶点类型id值 name:顶点类型名称,必填 id_strategy: 顶点类型的ID策略,主键ID、自动生成、自定义字符串、自定义数字、自定义UUID,默认主键ID properties: 顶点类型关联的属性类型 primary_keys: 主键属性,当ID策略为PRIMARY_KEY时必须有值,其他ID策略时必须为空; enable_label_index: 是否开启类型索引,默认关闭 index_names:顶点类型创建的索引,详情见3.4 nullable_keys:可为空的属性 user_data:设置顶点类型的通用信息,作用同属性类型 1.3.1 创建一个VertexLabel Method & Url
1 POST http://localhost:8080/graphs/hugegraph/schema/vertexlabels Request Body
1 {
2 "name" : "person" ,
3 "id_strategy" : "DEFAULT" ,
4 "properties" : [
5 "name" ,
6 "age"
7 ],
8 "primary_keys" : [
9 "name"
10 ],
11 "nullable_keys" : [],
12 "enable_label_index" : true
13 } Response Status Response Body
1 {
2 "id" : 1 ,
3 "primary_keys" : [
4 "name"
5 ],
6 "id_strategy" : "PRIMARY_KEY" ,
7 "name" : "person2" ,
8 "index_names" : [
9 ],
10 "properties" : [
11 "name" ,
12 "age"
13 ],
14 "nullable_keys" : [
15 ],
16 "enable_label_index" : true ,
17 "user_data" : {}
18 } 从 hugegraph-server v0.11.2 版本开始支持顶点的 TTL 功能。顶点的 TTL 是通过 VertexLabel 来设置的。比如希望 person 类型的顶点存活时间为一天,需要在创建 person VertexLabel 的时候将 TTL 字段设置为 86400000,即单位为毫秒。
1 {
2 "name" : "person" ,
3 "id_strategy" : "DEFAULT" ,
4 "properties" : [
5 "name" ,
6 "age"
7 ],
8 "primary_keys" : [
9 "name"
10 ],
11 "nullable_keys" : [],
12 "ttl" : 86400000 ,
13 "enable_label_index" : true
14 } 另外,当顶点中带有"创建时间"的属性且希望以"创建时间"属性作为计算顶点存活时间的起点时,可以设置 VertexLabel 中的 ttl_start_time 字段。比如 person VertexLabel 有 createdTime 属性,且 createdTime 是 Date 类型的参数,希望 person 类型的顶点从创建开始存活一天的时间,那么创建 person VertexLabel 的 Request Body 如下:
1 {
2 "name" : "person" ,
3 "id_strategy" : "DEFAULT" ,
4 "properties" : [
5 "name" ,
6 "age" ,
7 "createdTime"
8 ],
9 "primary_keys" : [
10 "name"
11 ],
12 "nullable_keys" : [],
13 "ttl" : 86400000 ,
14 "ttl_start_time" : "createdTime" ,
15 "enable_label_index" : true
16 } 1.3.2 为已存在的VertexLabel添加properties或userdata,或者移除userdata(目前不支持移除properties) Params action: 表示当前行为是添加还是移除,取值为append(添加)和eliminate(移除) Method & Url
1 PUT http://localhost:8080/graphs/hugegraph/schema/vertexlabels/person?action=append Request Body
1 {
2 "name" : "person" ,
3 "properties" : [
4 "city"
5 ],
6 "nullable_keys" : [ "city" ],
7 "user_data" : {
8 "super" : "animal"
9 }
10 } Response Status Response Body
1 {
2 "id" : 1 ,
3 "primary_keys" : [
4 "name"
5 ],
6 "id_strategy" : "PRIMARY_KEY" ,
7 "name" : "person" ,
8 "index_names" : [
9 ],
10 "properties" : [
11 "city" ,
12 "name" ,
13 "age"
14 ],
15 "nullable_keys" : [
16 "city"
17 ],
18 "enable_label_index" : true ,
19 "user_data" : {
20 "super" : "animal"
21 }
22 } 1.3.3 获取所有的VertexLabel Method & Url
1 GET http://localhost:8080/graphs/hugegraph/schema/vertexlabels Response Status Response Body
1 {
2 "vertexlabels" : [
3 {
4 "id" : 1 ,
5 "primary_keys" : [
6 "name"
7 ],
8 "id_strategy" : "PRIMARY_KEY" ,
9 "name" : "person" ,
10 "index_names" : [
11 ],
12 "properties" : [
13 "city" ,
14 "name" ,
15 "age"
16 ],
17 "nullable_keys" : [
18 "city"
19 ],
20 "enable_label_index" : true ,
21 "user_data" : {
22 "super" : "animal"
23 }
24 },
25 {
26 "id" : 2 ,
27 "primary_keys" : [
28 "name"
29 ],
30 "id_strategy" : "PRIMARY_KEY" ,
31 "name" : "software" ,
32 "index_names" : [
33 ],
34 "properties" : [
35 "price" ,
36 "name" ,
37 "lang"
38 ],
39 "nullable_keys" : [
40 "price"
41 ],
42 "enable_label_index" : false ,
43 "user_data" : {}
44 }
45 ]
46 } 1.3.4 根据name获取VertexLabel Method & Url
1 GET http://localhost:8080/graphs/hugegraph/schema/vertexlabels/person Response Status Response Body
1 {
2 "id" : 1 ,
3 "primary_keys" : [
4 "name"
5 ],
6 "id_strategy" : "PRIMARY_KEY" ,
7 "name" : "person" ,
8 "index_names" : [
9 ],
10 "properties" : [
11 "city" ,
12 "name" ,
13 "age"
14 ],
15 "nullable_keys" : [
16 "city"
17 ],
18 "enable_label_index" : true ,
19 "user_data" : {
20 "super" : "animal"
21 }
22 } 1.3.5 根据name删除VertexLabel 删除 VertexLabel 会导致删除对应的顶点以及相关的索引数据,会产生一个异步任务
Method & Url
1 DELETE http://localhost:8080/graphs/hugegraph/schema/vertexlabels/person Response Status Response Body 注:
可以通过GET http://localhost:8080/graphs/hugegraph/tasks/1(其中"1"是task_id)来查询异步任务的执行状态,更多异步任务RESTful API