概述
Schema总览算法通过统计起、终点schema信息、其间的边schema信息及相应边数,实现对图结构的整体展示。
示例图集
创建示例图集:
// 在空图集中逐行运行以下语句
create().node_schema("account").node_schema("movie").node_schema("country").node_schema("director").edge_schema("follow").edge_schema("like").edge_schema("filmedIn").edge_schema("direct")
insert().into(@account).nodes([{_id:"David"}, {_id:"Emily"}, {_id:"Alice"}])
insert().into(@movie).nodes([{_id:"Titanic"}, {_id:"Avatar"}])
insert().into(@country).nodes({_id:"Mexico"})
insert().into(@director).nodes({_id:"James Cameron"})
insert().into(@follow).edges([{_from:"David", _to:"Alice"}, {_from:"Emily", _to:"Alice"}])
insert().into(@like).edges({_from:"Alice", _to:"Titanic"})
insert().into(@filmedIn).edges({_from:"Titanic", _to: "Mexico"})
insert().into(@direct).edges([{_from:"James Cameron", _to:"Titanic"}, {_from:"James Cameron", _to:"Avatar"}])
创建HDC图集
将当前图集全部加载到HDC服务器hdc-server-1
上,并命名为 hdc_schema_ov
:
CALL hdc.graph.create("hdc-server-1", "hdc_schema_ov", {
nodes: {"*": ["*"]},
edges: {"*": ["*"]},
direction: "undirected",
load_id: true,
update: "static",
query: "query",
default: false
})
hdc.graph.create("hdc_schema_ov", {
nodes: {"*": ["*"]},
edges: {"*": ["*"]},
direction: "undirected",
load_id: true,
update: "static",
query: "query",
default: false
}).to("hdc-server-1")
参数
算法名:schema_overview
参数名 |
类型 |
规范 |
默认值 |
可选 |
描述 |
---|---|---|---|---|---|
order |
String | asc , desc |
/ | 是 | 根据count 值对结果排序 |
完整返回
CALL algo.schema_overview("hdc_schema_ov", {
params: {},
return_params: {}
}) YIELD result
RETURN result
exec{
algo(schema_overview).params() as result
return result
} on hdc_schema_ov
结果:
node schema(src) |
edge schema |
node schema(dest) |
count |
---|---|---|---|
account | follow | account | 2 |
account | like | movie | 1 |
movie | filmedIn | country | 1 |
director | direct | movie | 2 |
流式返回
CALL algo.schema_overview("hdc_schema_ov", {
params: {},
return_params: {
stream: {}
}
}) YIELD r
FILTER r.schema = "account"
RETURN r
exec{
algo(schema_overview).params().stream() as r
where r.`node schema(src)` = "account"
return r
} on hdc_schema_ov
结果:
node schema(src) |
edge schema |
node schema(dest) |
count |
---|---|---|---|
account | follow | account | 2 |
account | like | movie | 1 |