Skip to content

Commit 62e9942

Browse files
committed
Add new documents for the extensions pgroonga ddlx pgrouting
1 parent fee872d commit 62e9942

File tree

4 files changed

+204
-0
lines changed

4 files changed

+204
-0
lines changed

CN/modules/ROOT/nav.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
* IvorySQL生态
1515
** xref:v4.5/11.adoc[PostGIS]
1616
** xref:v4.5/12.adoc[pgvector]
17+
** xref:v4.5/34.adoc[PGroonga]
18+
** xref:v4.5/35.adoc[pgddl (DDL Extractor)]
19+
** xref:v4.5/36.adoc[pgRouting]
1720
* IvorySQL架构设计
1821
** 查询处理
1922
*** xref:v4.5/31.adoc[双parser]

CN/modules/ROOT/pages/v4.5/34.adoc

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
2+
:sectnums:
3+
:sectnumlevels: 5
4+
5+
= PGroonga
6+
7+
== 概述
8+
PostgreSQL 内置了全文搜索功能,但在处理​​大规模数据​​、​​复杂查询​​以及​​非英语语言(特别是中日韩等 CJK 语言)​​ 时,其功能和性能可能无法满足高性能应用的需求。
9+
10+
PGroonga 应运而生,它是一个 PostgreSQL 的扩展插件,将 ​​Groonga​​ 这款高性能的全功能全文搜索引擎与 PostgreSQL 数据库深度融合。Groonga 本身是一个优秀的开源搜索引擎,以其极致的速度和丰富的功能著称,尤其擅长处理多语言文本。PGroonga 的使命就是将 Groonga 的强大能力无缝地带入 PostgreSQL 的世界,为用户提供远超原生全文搜索的体验。
11+
12+
== 安装
13+
根据开发环境,用户可从 https://pgroonga.github.io/install[PGroonga安装] 页面选择适合自己的方式进行PGroonga安装。
14+
15+
=== 源码安装
16+
除PGroonga社区提供的安装方式以外,IvorySQL社区也提供了源码安装方式,源码安装环境为 Ubuntu 24.04(x86_64)。
17+
18+
[TIP]
19+
环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4
20+
21+
==== 安装 groonga
22+
23+
** 安装依赖 kytea
24+
```
25+
git clone https://github.com/neubig/kytea.git
26+
autoreconf -i
27+
./configure
28+
make
29+
sudo make install
30+
```
31+
32+
** 安装依赖 libzmq
33+
```
34+
从https://github.com/zeromq/libzmq/releases/tag/v4.3.5 下载zeromq-4.3.5.tar.gz
35+
tar xvf zeromq-4.3.5.tar.gz
36+
cd zeromq-4.3.5/
37+
./configure
38+
make
39+
sudo make install
40+
```
41+
42+
** 下载 groonga包,安装指定依赖
43+
```
44+
wget https://packages.groonga.org/source/groonga/groonga-latest.tar.gz
45+
tar xvf groonga-15.1.5.tar.gz
46+
cd groonga-15.1.5
47+
#运行这个脚本安装依赖,支持apt和dnf包管理工具
48+
./ setup.sh
49+
```
50+
51+
** 编译安装
52+
```
53+
# -S 指定groonga源码目录, -B 指定build目录,这个目录是个源码目录之外的一个只用于build的目录
54+
cmake -S /home/ivorysql/groonga-15.1.5 -B /home/ivorysql/groonga_build --preset=release-maximum
55+
cmake --build /home/ivorysql/groonga_build
56+
sudo cmake --install /home/ivorysql/groonga_build
57+
# 更新动态链接库缓存
58+
sudo ldconfig
59+
```
60+
61+
** 验证 groonga安装成功
62+
```
63+
$ groonga --version
64+
Groonga 15.1.5 [Linux,x86_64,utf8,match-escalation-threshold=0,nfkc,mecab,message-pack,mruby,onigmo,zlib,lz4,zstandard,epoll,apache-arrow,xxhash,blosc,bfloat16,h3,simdjson,llama.cpp]
65+
```
66+
67+
==== 安装 pgroonga
68+
```
69+
wget https://packages.groonga.org/source/pgroonga/pgroonga-4.0.1.tar.gz
70+
tar xvf pgroonga-4.0.1.tar.gz
71+
cd pgroonga-4.0.1
72+
```
73+
74+
编译PGroonga,有个选项:HAVE_MSGPACK=1,它是用于支持WAL,使用这个选项需要安装msgpack-c 1.4.1或者更高版本。在基于Debian的平台使用libmsgpack-dev包,在CentOS 7上用msgpack-devel
75+
```
76+
#安装依赖
77+
sudo apt install libmsgpack-dev
78+
```
79+
80+
运行make前确保pg_config命令的路径在PATH环境变量里
81+
```
82+
make HAVE_MSGPACK=1
83+
make install
84+
```
85+
86+
== 创建Extension并确认PGroonga版本
87+
88+
psql 连接到数据库,执行如下命令:
89+
```
90+
ivorysql=# CREATE extension pgroonga;
91+
CREATE EXTENSION
92+
93+
ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgroonga';
94+
name | default_version | installed_version | comment
95+
---------+-----------------+-------------------+-------------------------------------------------------------------------------
96+
pgroonga| 4.0.1 | 4.0.1 | Super fast and all languages supported full text search index based on Groonga
97+
(1 row)
98+
```
99+
100+
== 使用
101+
关于PGroonga的使用,请参阅 https://pgroonga.github.io/tutorial[PGroonga官方文档]

CN/modules/ROOT/pages/v4.5/35.adoc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
2+
:sectnums:
3+
:sectnumlevels: 5
4+
5+
= pgddl (DDL Extractor)
6+
7+
== 概述
8+
pgddl 是一个专为 PostgreSQL 数据库设计的 SQL 函数扩展,它能够直接从数据库系统目录中生成清晰、格式化的 SQL DDL (数据定义语言) 脚本,例如 CREATE TABLE 或 ALTER FUNCTION。它解决了 PostgreSQL 原生缺乏类似 SHOW CREATE TABLE 命令的问题,让用户无需借助外部工具(如 pg_dump)即可在纯 SQL 环境中轻松获取对象的创建语句。
9+
10+
该扩展通过一组简单的 SQL 函数提供了一套完整的解决方案,其优势包括:仅需使用 SQL 查询即可操作、支持通过 WHERE 子句灵活筛选对象、并能智能处理对象之间的依赖关系,生成包含 Drop 和 Create 步骤的完整脚本。这使得它特别适用于数据库变更管理、升级脚本编写和结构审计等场景。
11+
12+
需要注意的是,ddlx 仍在发展中,可能尚未覆盖所有 PostgreSQL 对象类型和高级选项。生成的脚本建议始终在非生产环境中先行检查和测试,以确保其正确性与安全性。
13+
14+
== 安装
15+
16+
[TIP]
17+
环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4
18+
19+
=== 源码安装
20+
从https://github.com/lacanoid/pgddl/releases/tag/0.20 下载pgddl-0.20.tar.gz,解压缩。
21+
22+
```
23+
cd pgddl-0.20
24+
# 设置PG_CONFIG环境变量值为pg_config路径,eg:/usr/local/ivorysql/ivorysql-4/bin/pg_config
25+
make PG_CONFIG=/path/to/pg_config
26+
make PG_CONFIG=/path/to/pg_config install
27+
```
28+
29+
== 创建Extension并确认ddlx版本
30+
31+
psql 连接到数据库,执行如下命令:
32+
```
33+
ivorysql=# CREATE extension ddlx;
34+
CREATE EXTENSION
35+
36+
ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'ddlx';
37+
name | default_version | installed_version | comment
38+
------+-----------------+-------------------+-------------------------
39+
ddlx | 0.20 | 0.20 | DDL eXtractor functions
40+
(1 row)
41+
```
42+
43+
== 使用
44+
关于pgddl的使用,请参阅 https://github.com/lacanoid/pgddl[ddlx官方文档]

CN/modules/ROOT/pages/v4.5/36.adoc

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
2+
:sectnums:
3+
:sectnumlevels: 5
4+
5+
= pgRouting
6+
7+
== 概述
8+
pgRouting 是一个基于 PostgreSQL/PostGIS 数据库构建的开源地理空间路由扩展库。它为数据库赋予了强大的网络分析功能,使其能够处理复杂的路径规划与图论计算问题,例如计算两点之间的最短路径、执行旅行推销员(TSP)分析或计算服务区范围等。它将路由算法直接嵌入到数据库中,从而避免了在应用层进行复杂的数据传输与计算。
9+
10+
该扩展的核心优势在于能够利用 PostgreSQL 强大的数据管理能力和 PostGIS 丰富的空间函数,直接在数据库内部对空间网络数据执行高效计算。这不仅简化了应用程序的开发流程,还通过减少数据移动大幅提升了大规模网络分析的性能。
11+
12+
pgRouting 广泛应用于物流配送、交通导航、网络分析、城市规划及供应链管理等多个领域。其开源特性吸引了全球开发者持续的贡献与完善,使其成为空间数据库领域进行路径分析和网络求解的首选工具之一。
13+
14+
== 安装
15+
16+
[TIP]
17+
环境中已经安装了IvorySQL4.6及以上版本,安装路径为/usr/local/ivorysql/ivorysql-4
18+
19+
=== 源码安装
20+
21+
** 安装依赖
22+
对perl有依赖,perl一般在装IvorySQL时已经装上了,这里不用再装
23+
CMake版本要求 >= 3.12, Boost版本 >= 1.56
24+
```
25+
#安装依赖
26+
sudo apt install cmake libboost-all-dev
27+
```
28+
29+
** 编译安装
30+
```
31+
wget https://github.com/pgRouting/pgrouting/releases/download/v3.5.1/pgrouting-3.5.1.tar.gz
32+
tar xvf pgrouting-3.5.1.tar.gz
33+
cd pgrouting-3.5.1
34+
mkdir build
35+
cd build
36+
cmake .. -DPOSTGRESQL_PG_CONFIG=/path/to/pg_config # eg: /usr/local/ivorysql/ivorysql-4/bin/pg_config
37+
make
38+
sudo make install
39+
```
40+
41+
== 创建Extension并确认ddlx版本
42+
43+
psql 连接到数据库,执行如下命令:
44+
```
45+
ivorysql=# CREATE extension pgrouting;
46+
CREATE EXTENSION
47+
48+
ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgrouting';
49+
name | default_version | installed_version | comment
50+
-----------+-----------------+-------------------+---------------------
51+
pgrouting | 3.5.1 | | pgRouting Extension
52+
(1 row)
53+
```
54+
55+
== 使用
56+
关于pgRouting的使用,请参阅 https://docs.pgrouting.org/[pgRouting官方文档]

0 commit comments

Comments
 (0)