图查询的最快路径
Neo4j Cypher 查询语言
Cypher 是一种被全球开发者所使用的声明式图查询语言。由 Neo4j 创建,Cypher 为属性图提供了富有表现力且高效的查询能力。
什么是 Cypher?
可视化、直观且强大的图
数据查询语言
Cypher 易于学习的模式构建方式使其非常适合开发者、数据科学家以及查询语言经验有限的用户。用户只需简单地表达需要检索的数据,底层的引擎就会完成任务,从而消除了对技术实现细节知识的依赖。
Neo4j Cypher 查询语言的优势
属性图数据模型在各种应用领域中日益普及,并在多个产品和项目中得到广泛采用。对于处理属性图而言,Cypher 是最成熟且最直观易学的查询语言。
易于学习
Cypher 语句非常简洁。它将节点之间的引用表示为直观的模式,易于理解。Cypher 学习曲线平缓,有助于用户快速编写富有表现力、直观的查询,从而更快地获得结果。请在我们的 GraphAcademy 中查找 Cypher 学习路径。
可视化与逻辑性
使用 ASCII 艺术风格的语法匹配图中的节点和关系模式。这些模式直接映射到图表或白板上绘制的领域模型。因此,模型、数据库和查询语言之间不存在阻抗失配问题。
安全、可靠且数据丰富
Cypher 非常适合应用程序开发和数据分析。它减少了对数据库的重复调用,并通过简洁的单条查询表达特定的用例数据需求。Neo4j 驱动程序使用响应式编程方法,可节省云计算资源并管理 背压 (back-pressure)。
告别复杂的连接 (Join)
Cypher 是一种针对图优化的查询语言,能够理解并利用数据连接。它能够跟踪任意方向的连接,以揭示此前未知的关系和集群。编写 Cypher 查询比编写复杂的 SQL 连接要容易得多。将此 Cypher 查询与其对应的 SQL 进行比较。
MATCH (p:Product)-[:CATEGORY]->(l:ProductCategory)-[:PARENT*0..]->(:ProductCategory {name:"Dairy Products"})
RETURN p.name
SELECT p.ProductName
FROM Product AS p
JOIN ProductCategory pc ON (p.CategoryID = pc.CategoryID AND pc.CategoryName = "Dairy Products")
JOIN ProductCategory pc1 ON (p.CategoryID = pc1.CategoryID)
JOIN ProductCategory pc2 ON (pc1.ParentID = pc2.CategoryID AND pc2.CategoryName = "Dairy Products")
JOIN ProductCategory pc3 ON (p.CategoryID = pc3.CategoryID)
JOIN ProductCategory pc4 ON (pc3.ParentID = pc4.CategoryID)
JOIN ProductCategory pc5 ON (pc4.ParentID = pc5.CategoryID AND pc5.CategoryName = "Dairy Products");