文档 1.7 版本已不再积极维护,你当前浏览的是一份归档快照。
最新文档请参阅 最新版本。
EdgeLabel API
1.4 EdgeLabel
假设已经创建好了 1.2.3 中的 PropertyKeys 和 1.3.3 中的 VertexLabels
Params 说明
- name:顶点类型名称,必填
- source_label: 源顶点类型的名称,必填
- target_label: 目标顶点类型的名称,必填
- frequency:两个点之间是否可以有多条边,可以取值 SINGLE 和 MULTIPLE,非必填,默认值 SINGLE
- properties: 边类型关联的属性类型,选填
- sort_keys: 当允许关联多次时,指定区分键属性列表
- nullable_keys:可为空的属性,选填,默认可为空
- enable_label_index:是否开启类型索引,默认关闭
1.4.1 创建一个 EdgeLabel
Method & Url
1POST http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/schema/edgelabels
Request Body
1{
2 "name": "created",
3 "source_label": "person",
4 "target_label": "software",
5 "frequency": "SINGLE",
6 "properties": [
7 "date"
8 ],
9 "sort_keys": [],
10 "nullable_keys": [],
11 "enable_label_index": true
12}
Response Status
Response Body
1{
2 "id": 1,
3 "sort_keys": [
4 ],
5 "source_label": "person",
6 "name": "created",
7 "index_names": [
8 ],
9 "properties": [
10 "date"
11 ],
12 "target_label": "software",
13 "frequency": "SINGLE",
14 "nullable_keys": [
15 ],
16 "enable_label_index": true,
17 "user_data": {}
18}
从 hugegraph-server v0.11.2 版本开始支持边的 TTL 功能。边的 TTL 是通过 EdgeLabel 来设置的。比如希望 knows 类型的边存活时间为一天,需要在创建 knows EdgeLabel 的时候将 TTL 字段设置为 86400000,即单位为毫秒。
1{
2 "id": 1,
3 "sort_keys": [
4 ],
5 "source_label": "person",
6 "name": "knows",
7 "index_names": [
8 ],
9 "properties": [
10 "date",
11 "createdTime"
12 ],
13 "target_label": "person",
14 "frequency": "SINGLE",
15 "nullable_keys": [
16 ],
17 "enable_label_index": true,
18 "ttl": 86400000,
19 "user_data": {}
20}
另外,当边中带有"创建时间"的属性且希望以"创建时间"属性作为计算边存活时间的起点时,可以设置 EdgeLabel 中的 ttl_start_time 字段。比如 knows EdgeLabel 有 createdTime 属性,且 createdTime 是 Date 类型的参数,希望 knows 类型的边从创建开始存活一天的时间,那么创建 knows EdgeLabel 的 Request Body 如下:
1{
2 "id": 1,
3 "sort_keys": [
4 ],
5 "source_label": "person",
6 "name": "knows",
7 "index_names": [
8 ],
9 "properties": [
10 "date",
11 "createdTime"
12 ],
13 "target_label": "person",
14 "frequency": "SINGLE",
15 "nullable_keys": [
16 ],
17 "enable_label_index": true,
18 "ttl": 86400000,
19 "ttl_start_time": "createdTime",
20 "user_data": {}
21}
1.4.2 为已存在的 EdgeLabel 添加 properties 或 userdata,或者移除 userdata(目前不支持移除 properties)
Params
- action: 表示当前行为是添加还是移除,取值为
append(添加)和eliminate(移除)
Method & Url
1PUT http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/schema/edgelabels/created?action=append
Request Body
1{
2 "name": "created",
3 "properties": [
4 "weight"
5 ],
6 "nullable_keys": [
7 "weight"
8 ]
9}
Response Status
Response Body
1{
2 "id": 2,
3 "sort_keys": [
4 ],
5 "source_label": "person",
6 "name": "created",
7 "index_names": [
8 ],
9 "properties": [
10 "date",
11 "weight"
12 ],
13 "target_label": "software",
14 "frequency": "SINGLE",
15 "nullable_keys": [
16 "weight"
17 ],
18 "enable_label_index": true,
19 "user_data": {}
20}
1.4.3 获取所有的 EdgeLabel
Method & Url
1GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/schema/edgelabels
Response Status
Response Body
1{
2 "edgelabels": [
3 {
4 "id": 1,
5 "sort_keys": [
6 ],
7 "source_label": "person",
8 "name": "created",
9 "index_names": [
10 ],
11 "properties": [
12 "date",
13 "weight"
14 ],
15 "target_label": "software",
16 "frequency": "SINGLE",
17 "nullable_keys": [
18 "weight"
19 ],
20 "enable_label_index": true,
21 "user_data": {}
22 },
23 {
24 "id": 2,
25 "sort_keys": [
26 ],
27 "source_label": "person",
28 "name": "knows",
29 "index_names": [
30 ],
31 "properties": [
32 "date",
33 "weight"
34 ],
35 "target_label": "person",
36 "frequency": "SINGLE",
37 "nullable_keys": [
38 ],
39 "enable_label_index": false,
40 "user_data": {}
41 }
42 ]
43}
1.4.4 根据 name 获取 EdgeLabel
Method & Url
1GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/schema/edgelabels/created
Response Status
Response Body
1{
2 "id": 1,
3 "sort_keys": [
4 ],
5 "source_label": "person",
6 "name": "created",
7 "index_names": [
8 ],
9 "properties": [
10 "date",
11 "city",
12 "weight"
13 ],
14 "target_label": "software",
15 "frequency": "SINGLE",
16 "nullable_keys": [
17 "city",
18 "weight"
19 ],
20 "enable_label_index": true,
21 "user_data": {}
22}
1.4.5 根据 name 删除 EdgeLabel
删除 EdgeLabel 会导致删除对应的边以及相关的索引数据,会产生一个异步任务
Method & Url
1DELETE http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/schema/edgelabels/created
Response Status
Response Body
注:
可以通过GET http://localhost:8080/graphspaces/DEFAULT/graphs/hugegraph/tasks/1(其中"1"是 task_id)来查询异步任务的执行状态,更多异步任务 RESTful API