假设已经创建好了1.2.3中的 PropertyKeys 和 1.3.3中的 VertexLabels
Params说明
POST http://localhost:8080/graphs/hugegraph/schema/edgelabels
{ "name": "created", "source_label": "person", "target_label": "software", "frequency": "SINGLE", "properties": [ "date" ], "sort_keys": [], "nullable_keys": [], "enable_label_index": true }
201
{ "id": 1, "sort_keys": [ ], "source_label": "person", "name": "created", "index_names": [ ], "properties": [ "date" ], "target_label": "software", "frequency": "SINGLE", "nullable_keys": [ ], "enable_label_index": true, "user_data": {} }
从 hugegraph-server v0.11.2 版本开始支持边的 TTL 功能。边的 TTL 是通过 EdgeLabel 来设置的。比如希望 knows 类型的边存活时间为一天,需要在创建 knows EdgeLabel 的时候将 TTL 字段设置为 86400000,即单位为毫秒。
{ "id": 1, "sort_keys": [ ], "source_label": "person", "name": "knows", "index_names": [ ], "properties": [ "date", "createdTime" ], "target_label": "person", "frequency": "SINGLE", "nullable_keys": [ ], "enable_label_index": true, "ttl": 86400000, "user_data": {} }
另外,当边中带有“创建时间”的属性且希望以“创建时间”属性作为计算边存活时间的起点时,可以设置 EdgeLabel 中的 ttl_start_time 字段。比如 knows EdgeLabel 有 createdTime 属性,且 createdTime 是 Date 类型的参数,希望 knows 类型的边从创建开始存活一天的时间,那么创建 knows EdgeLabel 的 Request Body 如下:
{ "id": 1, "sort_keys": [ ], "source_label": "person", "name": "knows", "index_names": [ ], "properties": [ "date", "createdTime" ], "target_label": "person", "frequency": "SINGLE", "nullable_keys": [ ], "enable_label_index": true, "ttl": 86400000, "ttl_start_time": "createdTime", "user_data": {} }
append
(添加)和eliminate
(移除)PUT http://localhost:8080/graphs/hugegraph/schema/edgelabels/created?action=append
{ "name": "created", "properties": [ "weight" ], "nullable_keys": [ "weight" ] }
200
{ "id": 2, "sort_keys": [ ], "source_label": "person", "name": "created", "index_names": [ ], "properties": [ "date", "weight" ], "target_label": "software", "frequency": "SINGLE", "nullable_keys": [ "weight" ], "enable_label_index": true, "user_data": {} }
GET http://localhost:8080/graphs/hugegraph/schema/edgelabels
200
{ "edgelabels": [ { "id": 1, "sort_keys": [ ], "source_label": "person", "name": "created", "index_names": [ ], "properties": [ "date", "weight" ], "target_label": "software", "frequency": "SINGLE", "nullable_keys": [ "weight" ], "enable_label_index": true, "user_data": {} }, { "id": 2, "sort_keys": [ ], "source_label": "person", "name": "knows", "index_names": [ ], "properties": [ "date", "weight" ], "target_label": "person", "frequency": "SINGLE", "nullable_keys": [ ], "enable_label_index": false, "user_data": {} } ] }
GET http://localhost:8080/graphs/hugegraph/schema/edgelabels/created
200
{ "id": 1, "sort_keys": [ ], "source_label": "person", "name": "created", "index_names": [ ], "properties": [ "date", "city", "weight" ], "target_label": "software", "frequency": "SINGLE", "nullable_keys": [ "city", "weight" ], "enable_label_index": true, "user_data": {} }
删除 EdgeLabel 会导致删除对应的边以及相关的索引数据,会产生一个异步任务
DELETE http://localhost:8080/graphs/hugegraph/schema/edgelabels/created
202
{ "task_id": 1 }
注:
可以通过
GET http://localhost:8080/graphs/hugegraph/tasks/1
(其中“1”是task_id)来查询异步任务的执行状态,更多异步任务RESTful API