GraphRAG宣言:利用知识图谱解锁更佳的生成式AI结果 | 立即阅读

Neo4j logo
最快构建图应用程序的路径

Neo4j 开发工具

Neo4j 提供高级工具,使学习和开发图应用程序变得更加容易。免费使用,可以在任何地方运行。

新增! 数据导入工具

Neo4j 桌面

在您的本地桌面体验 Neo4j。免费。

Neo4j 浏览器

探索您的数据库并构建完美的 Cypher 查询。

Neo4j 桌面

在您的本地桌面体验 Neo4j。免费。

*包含面向开发人员的 Neo4j 企业版许可证

系统要求

MacOS 10.10(Yosemite)+、Windows 7+、Ubuntu 12.04+、
Fedora 21、Debian 8

使用 Neo4j 企业版功能进行开发,以获得高级功能

  • 包含 Neo4j 企业版开发人员许可证
  • 支持多数据库,便于管理
  • 细粒度访问控制和增强的安全性

在一个基于项目的 workspace 中创建无限个本地数据库

  • 管理多个项目。桌面中的一个项目代表磁盘上的一个开发文件夹。
  • 创建本地 DBMS、连接到远程 DBMS 并将文件添加到您的项目中。

一键访问图应用程序和插件

  • 只需单击一下即可轻松安装各种图应用程序和数据库插件。
  • 访问新功能,例如监控、导入、分析、运行图算法和可视化。
// npm install --save neo4j-driver
// node example.js
const neo4j = require("neo4j-driver");
const driver = neo4j.driver("bolt://<HOST>:<BOLTPORT>", neo4j.auth.basic("<USERNAME>", "<PASSWORD>"), {
	/* encrypted: 'ENCRYPTION_OFF' */
});

const query = `
  MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->
  (:Category {categoryName:$category})
  RETURN p.productName as product
  `;

const params = { category: "Dairy Products" };

const session = driver.session({ database: "neo4j" });

session
	.run(query, params)
	.then((result) => {
		result.records.forEach((record) => {
			console.log(record.get("product"));
		});
		session.close();
		driver.close();
	})
	.catch((error) => {
		console.error(error);
	});
# pip3 install neo4j-driver
# python3 example.py

from neo4j import GraphDatabase, basic_auth

driver = GraphDatabase.driver(
  "bolt://<HOST>:<BOLTPORT>", 
  auth=basic_auth("<USERNAME>", "<PASSWORD>"))

cypher_query = '''
MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->
(:Category {categoryName:$category})
RETURN p.productName as product
'''

with driver.session(database="neo4j") as session:
  results = session.read_transaction(
    lambda tx: tx.run(cypher_query,
      category="Dairy Products").data())

  for record in results:
    print(record['product'])

driver.close()
// go mod init main
// go run example.go
package main
import (
	"fmt"
	"github.com/neo4j/neo4j-go-driver/neo4j" //Go 1.8
)
func main() {
	s, err := runQuery("bolt://<HOST>:<BOLTPORT>", "<USERNAME>", "<PASSWORD>")
	if err != nil {
		panic(err)
	}
	fmt.Println(s)
}
func runQuery(uri, username, password string) ([]string, error) {
	configForNeo4j4 := func(conf *neo4j.Config) { conf.Encrypted = false }
	driver, err := neo4j.NewDriver(uri, neo4j.BasicAuth(username, password, ""), configForNeo4j4)
	if err != nil {
		return nil, err
	}
	defer driver.Close()
	sessionConfig := neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead, DatabaseName: "neo4j"}
	session, err := driver.NewSession(sessionConfig)
	if err != nil {
		return nil, err
	}
	defer session.Close()
	results, err := session.ReadTransaction(func(transaction neo4j.Transaction) (interface{}, error) {
		result, err := transaction.Run(
			`
			MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->
			(:Category {categoryName:$category})
			RETURN p.productName as product
			`, map[string]interface{}{
				"category": "Dairy Products",
			})
		if err != nil {
			return nil, err
		}
		var arr []string
		for result.Next() {
			value, found := result.Record().Get("product")
			if found {
			  arr = append(arr, value.(string))
			}
		}
		if err = result.Err(); err != nil {
			return nil, err
		}
		return arr, nil
	})
	if err != nil {
		return nil, err
	}
	return results.([]string), err
}
// install dotnet core on your system
// dotnet new console -o .
// dotnet add package Neo4j.Driver
// paste in this code into Program.cs
// dotnet run

using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Neo4j.Driver;
  
namespace dotnet {
  class Example {
  static async Task Main() {
    var driver = GraphDatabase.Driver("bolt://<HOST>:<BOLTPORT>", 
                    AuthTokens.Basic("<USERNAME>", "<PASSWORD>"));

    var cypherQuery =
      @"
      MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->
      (:Category {categoryName:$category})
      RETURN p.productName as product
      ";

    var session = driver.AsyncSession(o => o.WithDatabase("neo4j"));
    var result = await session.ReadTransactionAsync(async tx => {
      var r = await tx.RunAsync(cypherQuery, 
              new { category="Dairy Products"});
      return await r.ToListAsync();
    });

    await session?.CloseAsync();
    foreach (var row in result)
      Console.WriteLine(row["product"].As<string>());
	  
    }
  }
}
// Add your the driver dependency to your pom.xml build.gradle etc.
// Java Driver Dependency: http://search.maven.org/#artifactdetails|org.neo4j.driver|neo4j-java-driver|4.0.1|jar
// Reactive Streams http://search.maven.org/#artifactdetails|org.reactivestreams|reactive-streams|1.0.3|jar
// download jars into current directory
// java -cp "*" Example.java

import org.neo4j.driver.*;
import static org.neo4j.driver.Values.parameters;

public class Example {

  public static void main(String...args) {

    Driver driver = GraphDatabase.driver("bolt://<HOST>:<BOLTPORT>",
              AuthTokens.basic("<USERNAME>","<PASSWORD>"));

    try (Session session = driver.session(SessionConfig.forDatabase("neo4j"))) {

      String cypherQuery =
        "MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->" +
        "(:Category {categoryName:$category})" +
        "RETURN p.productName as product";

      var result = session.readTransaction(
        tx -> tx.run(cypherQuery, 
                parameters("category","Dairy Products"))
            .list());

      for (Record record : result) {
        System.out.println(record.get("product").asString());
      }
    }
    driver.close();
  }
}                    

使用您喜欢的编程语言开发应用程序

Neo4j 支持 GraphQL 和 Node.js、Python、Go、Java 和 .Net 的驱动程序。由于社区的支持,我们还拥有 PHP、Ruby、R、Erlang 和 Clojure 的驱动程序。

了解更多

连接并查询远程 Neo4j 数据库

连接到任何地方运行的 Neo4j 数据库,无论是本地、自托管,还是作为使用 Neo4j AuraDB™ 的完全托管云服务。

Neo4j 浏览器

探索您的数据库并构建完美的 Cypher 查询。

无论您是初学者还是经验丰富的 Neo4j 用户,浏览器都是一个面向开发人员的工具,它是编写 Cypher 查询和探索 Neo4j 图数据库内容的最佳场所。Neo4j 浏览器随所有 Neo4j 图数据库产品一起提供,包括 Neo4j Server(社区版和企业版)和 Neo4j 桌面(所有操作系统版本)。

内置的初学者指南

对于初学者,内置的指南可以帮助您学习 Neo4j 的基础知识,并开始编写 Cypher。

强大的代码自动完成辅助

对于初学者和专家,强大的代码自动完成辅助可以帮助您编写查询,以便您可以专注于手头的任务。

结果可视化

根据您的需要以图和表格形式提供结果。熟悉的“读取-评估-打印”结构可以帮助您细化查询并提高效率。

Neo4j 数据导入工具

快速将您的数据加载到 Neo4j 中。

Neo4j 数据导入工具简化了将数据导入 Neo4j 图数据库的过程。只需导入您的平面文件数据,勾勒出节点和关系以在图数据模型中表示您的数据,然后开始加载。 详细了解数据导入工具,并立即在 Neo4j AuraDB 免费版 上开始使用。

Neo4j 桌面

在您的本地桌面体验 Neo4j。免费。