- 最新动态
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 如何使用图引擎服务
- 准备工作
- 权限管理
- 元数据操作
- 创建图
- 管理图
- 数据迁移
- 访问图和分析图
- 查看图任务
- 配置图操作权限
- 运维监控
- 套餐包管理
-
算法参考
- 算法一览表
- PageRank算法
- PersonalRank算法
- k核算法(k-core)
- k跳算法(k-hop)
- 最短路径算法(Shortest Path)
- 全最短路算法(All Shortest Paths)
- 带一般过滤条件最短路径(Filtered Shortest Path)
- 单源最短路算法(SSSP)
- 点集最短路(Shortest Path of Vertex Sets)
- 关联路径算法(n-Paths)
- 紧密中心度算法(Closeness Centrality)
- 标签传播算法(Label Propagation)
- Louvain算法
- 关联预测算法(Link Prediction)
- Node2vec算法
- 实时推荐算法(Real-time Recommendation)
- 共同邻居算法(Common Neighbors)
- 连通分量算法(Connected Component)
- 度数关联度算法(Degree Correlation)
- 三角计数算法(Triangle Count)
- 聚类系数算法(Cluster Coefficient)
- 中介中心度算法(Betweenness Centrality)
- 边中介中心度(Edge-betweenness Centrality)
- OD中介中心度(OD-betweenness Centrality)
- 单点环路检测(Single Vertex Circles Detection)
- 点集共同邻居(Common Neighbors of Vertex Sets)
- 点集全最短路(All Shortest Paths of Vertex Sets)
- 带一般过滤条件环路检测(filtered circle detection)
- 子图匹配(Subgraph Matching)
- 带过滤全对最短路径(Filtered All Pairs Shortest Paths)
- 带过滤全最短路径(Filtered All Shortest Paths)
- TopicRank算法
- 带过滤的n_paths算法(filtered_n_paths)
- 时序路径分析(Temporal Paths)
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
- 管理面API(V2)
-
业务面API
-
内存版
- 点操作API
- 边操作API
- 元数据操作API
- 索引操作API
- Gremlin操作API
-
算法API
- 执行算法(1.0.0)
-
算法API参数参考
- 算法公共参数
- pagerank算法(1.0.0)
- personalrank算法(1.0.0)
- k核算法(kcore)(1.0.0)
- k跳算法(k_hop)(1.0.0)
- 共同邻居(common_neighbors)(1.0.0)
- 点集共同邻居(common_neighbors_of_vertex_sets)(2.2.13)
- 关联预测(link_prediction)(1.0.0)
- 最短路径(shortest_path)(2.1.5)
- 全最短路(all_shortest_paths)(1.0.12)
- 带一般过滤条件最短路径(filtered_shortest_path)(2.2.4)
- 单源最短路(sssp)(1.0.0)
- 点集最短路(shortest_path_of_vertex_sets)(2.1.5)
- 关联路径(n_paths)(1.1.2)
- 带过滤的n_paths算法(filtered_n_paths)(2.2.22)
- 带过滤全对最短路径(filtered_all_pairs_shortest_paths)(2.2.17)
- 点集全最短路(all_shortest_paths_of_vertex_sets)(2.2.15)
- 带过滤全最短路径(filtered_all_shortest_paths)(2.2.17)
- 连通分量(connected_component)(1.0.0)
- 标签传播(label_propagation)(2.1.8)
- louvain算法(louvain)(2.2.1)
- node2vec算法(node2vec)(1.0.5)
- 实时推荐(realtime_recommendation)(2.2.21)
- 度数关联度(degree_correlation)(1.0.0)
- 三角计数(triangle_count)(1.0.0)
- 聚类系数(cluster_coefficient)(1.0.0)
- 紧密中心度(closeness)(1.0.0)
- 中介中心度算法(betweenness)(2.2.4)
- 边中介中心度(edge_betweenness)(2.2.4)
- OD中介中心度(od_betweenness)(2.2.4)
- 单点环路检测(single_vertex_circles_detection)(2.2.4)
- 带一般过滤条件环路检测(filtered_circle_detection)(2.2.15)
- 子图匹配(subgraph_matching)(2.2.16)
- topicrank算法(topicrank)(2.2.20)
- 动态图分析API
- 路径API
- 图统计API
- 图操作API
- 子图操作API
- Job管理API
- 自定义操作API
- Cypher操作API(2.2.16)
- Filtered-query API(2.2.13)
- Filtered-query V2(2.3.6)
- DSL查询API(2.3.14)
- 通过导入文件更新点边的指定属性(2.2.13)
- 通过读取文件删除点边(2.2.15)
- 运维监控API
-
持久化版
- 持久化版规格说明
- 点操作API
- 边操作API
- 元数据操作API
- 索引操作API
- HyG图管理API
-
HyG算法API
- 执行算法
-
算法API参数参考
- 算法公共参数
- pagerank算法
- personalrank算法(personalrank)
- k核算法(kcore)
- k跳算法(k_hop)
- 点集共同邻居(common_neighbors_of_vertex_sets)
- 最短路径(shortest_path)
- 全最短路(all_shortest_paths)
- 全对最短路径(all_pairs_shortest_paths)
- 单源最短路算法(sssp)
- 点集最短路(shortest_path_of_vertex_sets)
- 点集全最短路(all_shortest_paths_of_vertex_sets)
- 连通分量(connected_component)
- 三角计数算法(triangle_count)
- 紧密中心度算法(closeness)
- 中介中心度算法(betweenness)
- 边中介中心度(edge_betweenness)
- OD中介中心度(od_betweenness)
- 单点环路检测(single_vertex_circles_detection)
- topicrank算法(topicrank)
- louvain算法(louvain)
- Bigclam算法(bigclam)
- Cesna算法(cesna)
- infomap算法(infomap)
- 标签传播算法(label_propagation)
- 子图匹配算法(subgraph matching)
- 关联预测算法(link_prediction)
- n_paths算法(n_paths)
- 聚类系数算法(cluster_coefficient)
- 算法结果TXT格式说明
- 执行DSL算法
- DSL语法说明
- HyG Job管理API
- 原生算法API
- 图统计API
- 图操作API
- Job管理API
- Cypher操作API
- 交互式事务API
- 运维监控API
-
内存版
- 应用示例
- 权限策略和授权项
- 云监控服务监控指标说明
- 历史API
- 附录
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
展开导读
链接复制成功!
Cypher查询
Cypher是一种声明式图查询语言,使用Cypher语句可以查询和修改GES中的数据,并返回结果。
具体操作步骤如下:
- 进入图引擎编辑器页面,详细操作请参见访问图引擎编辑器。
- Cypher查询编译过程中使用了基于label的点边索引。
- 在图数据查询区,在您输入查询语句前,按“回车”键执行操作。
Cypher查询语句
常用的查询语句如下表所示:
- 点查询
match (n:movie) return n :查询label为movie的点。
match (n) return n limit 100 表示查询100个节点的详细数据。
match (n{Occupation:'artist'}) return id(n), n.Gender limit 100 :查询前100个属性Occupation为artist的点,返回其id以及属性值Gender。
match (n) where id(n)='Vivian' return n :查询id为Vivian的点。
match (n) return n skip 50 limit 100 :查询全图所有的点,跳过前50个,而后返回100个。
- 边查询
match (n)-[r]->(m) return r, n, m :查询所有的边,并返回边和边两端的点。
match (n)-[r:rate]->(m) return r, n, m : 查询label为rate的边。
match (n)-[r:rate|:friends]-(m) where id(n)='Vivian' return n,r,m :查询起点为Vivian,边label为rate或friends的所有边。
- 路径查询
match p=(n:user)--(m1:user)--(m2:movie) return p limit 100:查询起点label为user,一跳终点为user,二跳终点为movie的路径,并返回前100条。
- 分组聚集、去重
match (n) return count(*) :查询全图点的数目。
match (n:user) return n.Gender, count(n) :对label为user的点,统计不同Gender下各有多少点。
match (n:user) return distinct n.Occupation :对label为user的点,拿到属性值Occupation,并去重。
- 排序
match (n:user) return id(n) as name order by name :查询label为user的点的id,命名为name,按照name排序。
- 创建点
create (n:movie{_ID_:'机长',Title: '机长', Year:2019}) return n : 创建一个ID为“机长”, label为movie,属性值Title为“机长”, Year为2019的点并返回。
create (n:movie{_ID_:'机长',Title: '机长', Year:2019})-[r:rate]-> (m:movie{_ID_:'攀登XX',Title: '攀登XX', Year:2019}) return r :创建两个点,以及其关联的边。
- 创建边
match (n),(m) where id(n)= '机长' and id(m)= 'Lethal Weapon' create (n)-[r:rate]->(m) return r :给定两个id,创建一条label为rate的边(建议2.2.21及以上版本使用此查询)。
- 更改属性
match (n) where id(n)= '机长' set n.Title= '《机长》' return n :查找id为“机长”的点,修改点的属性值Title为“《机长》”。
- 删除点
match (n) where id(n)= '机长' delete n :查找id为“机长”的点,并删除。
match (n) where id(n)= '机长' detach delete n :查找id为“机长”的点,删除点以及其关联的边。
- 查询schema:call db.schema()
注意:单独执行此接口仅返回的点对应的schema元数据,页面上将会看到点label呈现的多个孤立点。如果您希望看到点边结构的schema可视化,可以调用生成schema结构API,然后在cypher输入框中输入call db.schema()。
- 如果您输入了多个Cypher查询命令,可以在输入框中通过上下方向键来查找历史命令。
- Cypher查询支持联想历史记录的功能,根据您输入的语法关键字会自动显示您刚输入过的语法供您参考和选择,帮助您提高查询效率。
图2 Cypher联想查询
- 输入栏中的关键词,不同的类型会呈现出不同的颜色,具体颜色区分如下:
- 保留字:灰色
注意:保留字是编程语言中的一类语法结构。在特定的编程语言里,这些保留字具有较为特殊的意义,并且在语言的格式说明里被预先定义。
- String类型:橙色
- 键值对(非String类型,包括[键:值]):紫色
- 分隔符(包含 [] {} , ; () . 等):红色
- 变量:绿色
图3 Cypher关键字高亮 - 保留字:灰色