简介
Apache AGE是一个PostgreSQL数据库的扩展插件,使得在关系型数据库中也可以使用openCypher查询语言进行图查询。有了该插件,可以在PostgreSQL数据库中同时实现关键字检索、向量检索、图检索,仅需一个数据库即可实现复杂RAG的各种存储和检索需求。
安装
Docker安装
- 获取镜像
docker pull apache/age
- 运行容器
docker run \
--name age \
-p 5455:5432 \
-e POSTGRES_USER=postgresUser \
-e POSTGRES_PASSWORD=postgresPW \
-e POSTGRES_DB=postgresDB \
-d \
apache/age
- 启动数据库
docker exec -it age psql -d postgresDB -U postgresUser
源码安装
Git Clone仓库或手动下载官方发布的版本。目前,仅支持 PostgreSQL 版本 11~16,若低于11则无法安装使用。
安装及初始化
- 安装扩展
CREATE EXTENSION age;
- 加载扩展
LOAD 'age';
- 设置搜索路径
SET search_path = ag_catalog, "$user", public;
- 创建图
SELECT create_graph('my_graph');
AGE这个插件与其他插件不同,安装后,还需要执行第二步加载插件和第三步设置搜索路径。设置搜索路径则是为了让数据库能够找到 AGE 的函数,如 create_graph(),否则执行相关函数都会出错
基本操作
基本创建操作
创建节点
- 创建单个节点
SELECT * FROM cypher('my_graph', $$
CREATE (p:Person {name: '张三', age: 30})
RETURN p
$$) as (v agtype);
- 同时创建多个节点
SELECT * FROM cypher('my_graph', $$
CREATE (p1:Person {name: '李四', age: 25}),
(p2:Person {name: '王五', age: 35})
RETURN p1, p2
$$)