图查询的最快路径

Neo4j Cypher 查询语言

Cypher 是一种声明式图查询语言,全球开发者都在使用。Cypher 由 Neo4j 创建,为属性图提供表达性和高效的查询。

什么是 Cypher?

直观且强大的图数据查询语言
数据查询语言

Cypher 易于学习的模式结构使其易于开发者、数据科学家以及查询语言经验有限的用户使用。用户只需表达要检索的数据,底层引擎即可完成任务,无需技术实现知识。

使用 Cypher 匹配模式和关系的可视化方法

Neo4j Cypher 查询语言的优势

属性图数据模型在各种应用领域越来越受欢迎,并在多个产品和项目中得到越来越广泛的采用。对于处理属性图,Cypher 是最成熟且最直观的查询语言。

易于学习

Cypher 语句非常简洁。它将节点之间的引用表达为可视化模式,使其易于理解。Cypher 学习曲线平缓,帮助用户快速编写表达性强、直观的查询,更快地检索结果。在我们的 GraphAcademy 中查找 Cypher 学习路径

直观且逻辑性强

使用 ASCII 艺术语法匹配图中节点和关系的模式。这些模式直接映射到图表或白板上绘制的领域模型。因此,模型、数据库和查询语言之间不存在阻抗不匹配。

安全、可靠且数据丰富

Cypher 非常适合应用程序开发和数据分析。它减少了对数据库的重复调用,并在单个简洁的查询中表达特定于用例的数据需求。Neo4j 驱动程序使用反应式编程方法,节省云计算资源并管理 背压。

开放且灵活

Cypher 是一种开放的数据查询语言,基于 openCypher 计划。它可以通过用户定义函数和过程进行扩展。Cypher 解析器、计划程序和运行时的 Neo4j 实现是开源的。

在我们的基于云的图数据库 AuraDB 免费版 中试用 Cypher。 尝试使用 Cypher

不再需要复杂的联接

Cypher 是一种针对图数据库优化的查询语言,它理解并利用数据之间的连接。它可以沿着连接(任何方向)进行遍历,从而揭示之前未知的关系和集群。与复杂的 SQL 连接相比,Cypher 查询更容易编写。请比较以下 Cypher 查询及其在 SQL 中的等效查询。

Cypher
MATCH (p:Product)-[:CATEGORY]->(l:ProductCategory)-[:PARENT*0..]->(:ProductCategory {name:"Dairy Products"})
RETURN p.name
  
                
SQL
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");