编译装置
# root下useradd agensmkdir -p /usr/local/agenschown -R agens:agens /usr/local/agens/# agens下git clone https://github.com/bitnine-oss/agensgraph.git# --prefix指定装置目录./configure --prefix=/usr/local/agensmakemake install
初始化启动数据库
initdb -D /home/agens/work/data/agens# 批改端口号echo 'port = 5462' >> /home/agens/work/data/agens/postgresql.confag_ctl start -D /home/agens/work/data/agens# 官网文档说默认创立的库同以后用户,即agens,# 然而我试验创立的是postgres库# 登陆默认库agens -d postgres -p 5462# 创立新库createdb agens -p 5462# 登陆新库agens -d agens -p 5462
简略应用
# graph_path,相似于schema# 默认为空,session级别,创立后,主动赋值给graph_pathCREATE GRAPH network;SET graph_path = network;# 创立顶点(vertice),边(edge)CREATE VLABEL person;CREATE ELABEL knows;# 创立点及边CREATE (:person {name: 'Tom'})-[:knows {fromdate:'2011-11-24'}]->(:person {name: 'Summer'});CREATE (:person {name: 'Pat'})-[:knows {fromdate:'2013-12-25'}]->(:person {name: 'Nikki'});CREATE (:person {name: 'Olive'})-[:knows {fromdate:'2015-01-26'}]->(:person {name: 'Todd'});MATCH (p:Person {name: 'Tom'}),(k:Person{name: 'Pat'}) CREATE (p)-[:KNOWS {fromdate:'2017-02-27'} ]->(k);
生成图如下:
查问
# MATCH (n:person {name: 'Tom'})-[:knows]->(m:person) RETURN n.name AS n, m.name AS m; n | m-------+---------- "Tom" | "Summer" "Tom" | "Pat"(2 rows)MATCH (p:person {name: 'Tom'})-[:knows]->(f:person)RETURN f.nameUNION ALLMATCH (p:person {name: 'Tom'})-[:knows]->()-[:knows]->(f:person)RETURN f.name; name---------- "Summer" "Pat" "Nikki"(3 rows)MATCH (p:person {name: 'Tom'})-[r:knows*1..2]->(f:person)RETURN f.name, r[1].fromdate; name | fromdate----------+-------------- "Summer" | "Pat" | "Nikki" | "2013-12-25"(3 rows)
参考资料:
https://github.com/bitnine-os...
https://cdn.modb.pro/wiki/4440
https://www.jianshu.com/p/bc6...
http://bitnine.net/documentat...