开发者中心
利用适用于您所用语言的图工具,更轻松地构建更智能的应用程序
Python# Python code example from neo4j import GraphDatabase # Neo4j connection settings URI = "neo4j+s://.databases.neo4j.io" AUTH = ("neo4j", " ") # Create the driver driver = GraphDatabase.driver(URI, auth=AUTH) # Query the graph with driver: result = driver.execute_query( """ MATCH pattern = (p1:Project) -[:USES*1..3]-> (m:Module) <-[:USES*1..3]- (p2:Project) WHERE p1 <> p2 RETURN pattern; """, database_="neo4j", ) for record in result.records: print(record)
Javaimport org.neo4j.driver.AuthTokens; import org.neo4j.driver.GraphDatabase; import java.time.LocalDate; import java.util.List; import java.util.Map; public class App { public static void main(String[] args) { try ( var driver = GraphDatabase.driver( "neo4j+s://.databases.neo4j.io", AuthTokens.basic( "neo4j", " " ) ) ) { driver.verifyConnectivity(); // Query that produces the visualization var javaVersions = driver.executableQuery( """ MATCH (j:JavaVersion) -[:INCLUDES]-> (f:Feature) -[:BELONGS_TO]-> (c:Category { name: $categoryName }) WHERE toInteger(j.version) >= $minVersion WITH j, collect(f.title) AS features, c.name AS category RETURN j { .version, .status, .gaDate, .eolDate, features: features, category: category } AS javaVersion; """ ) .withParameters( Map.of( "categoryName", "lang", "minVersion", 24 ) ) .execute() .records() .stream() .map(r -> r.get("javaVersion") .as(JavaVersion.class) ) .toList(); for (var javaVersion : javaVersions) { System.out.println(javaVersion); } } } record JavaVersion( String version, String status, LocalDate gaDate, LocalDate eolDate, List features ) {} record Feature( String title, Category category ) {} record Category( String name ) {} }
JavaScriptconst neo4j = require("neo4j-driver"); // Neo4j connection settings const URI = process.env.NEO4J_URI || "neo4j+s://.databases.neo4j.io"; const USERNAME = process.env.NEO4J_USERNAME || "neo4j"; const PASSWORD = process.env.NEO4J_PASSWORD || " "; const DATABASE = process.env.NEO4J_DATABASE || "neo4j"; const AUTH = neo4j.auth.basic( USERNAME, PASSWORD ); const driver = neo4j.driver( URI, AUTH ); // Query that produces the visualization async function main() { try { const result = await driver.executeQuery( ` MATCH (lib:Library) -[:SUPPORTS]-> (f:Feature), (lib) -[:BELONGS_TO]-> (t:Trend { name: $frameworkName }) RETURN lib.name AS library, f.name AS feature, t.name AS trend; `, { frameworkName: "Vue.js", }, { database: DATABASE, } ); for (const record of result.records) { console.log(record.toObject()); } } catch (error) { console.error( "Query failed:",error); } finally { await driver.close(); } } main().catch(console.error);
C#using Neo4j.Driver; // Neo4j connection settings var uri = "neo4j+s://.databases.neo4j.io"; var user = "neo4j"; var password = " "; using var driver = GraphDatabase.Driver( uri, AuthTokens.Basic( user, password ) ); await driver.VerifyConnectivityAsync(); var result = await driver .ExecutableQuery( @" MATCH (m:Maintainer { name: $maintainerName })<-[:MAINTAINED_BY]- (pkg:Package) -[:TESTS_WITH]-> (tp:TestPackage) -[:MAINTAINED_BY]-> (tm:Maintainer) WHERE m.name <> tm.name RETURN m.name AS maintainer, pkg.name AS package, tp.name AS testPackage, tm.name AS testMaintainer; " ) .WithParameters( new { maintainerName = "Microsoft" } ) .WithConfig( new QueryConfig( database: "neo4j" ) ) .ExecuteAsync(); foreach (var record in result.Result) { var maintainer = record["maintainer"] .As (); var package = record["package"] .As (); var testPackage = record["testPackage"] .As (); var testMaintainer = record["testMaintainer"] .As (); Console.WriteLine( maintainer + " maintains " + package + " which tests with " + testPackage + " (maintained by " + testMaintainer + ")" ); }
构建智能 AI + 图应用程序
创建具备上下文感知能力和推理能力的 AI
了解如何建模知识图谱、利用 GraphRAG 获取上下文、通过 MCP 将其流式传输到智能体中,并构建能够基于关联数据进行推理的图感知 AI,利用现成的模式和代码快速起步。
图学院 (Graph Academy)
提供 30 多门课程,涵盖从初学者到高级图与 AI 开发的内容,且课程仍在持续更新中。
生成式 AI
Cypher
开发
处理
分析
通过为项目成功打造的引导式路径,掌握图基础知识、开发模式和 AI 工作流。每个模块都包含实践练习,您可以通过 Neo4j 认证考试验证您的技能,从“Neo4j 认证专业人员”到高级“图数据科学认证”均可选择。
开始学习
Python