|
| 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 | +IvorySQL的安装包里已经集成了PGroonga插件,如果使用安装包安装的IvorySQL,通常不需要再手动安装PGroonga即可使用。 |
| 15 | + |
| 16 | +=== 源码安装 |
| 17 | +除PGroonga社区提供的安装方式以外,IvorySQL社区也提供了源码安装方式,源码安装环境为 Ubuntu 24.04(x86_64)。 |
| 18 | + |
| 19 | +[TIP] |
| 20 | +环境中已经安装了IvorySQL1.17及以上版本,安装路径为/usr/local/ivorysql/ivorysql-1 |
| 21 | + |
| 22 | +==== 安装 groonga |
| 23 | + |
| 24 | +** 安装依赖 kytea |
| 25 | +[literal] |
| 26 | +---- |
| 27 | +git clone https://github.com/neubig/kytea.git |
| 28 | +autoreconf -i |
| 29 | +./configure |
| 30 | +make |
| 31 | +sudo make install |
| 32 | +---- |
| 33 | + |
| 34 | +** 安装依赖 libzmq |
| 35 | +[literal] |
| 36 | +---- |
| 37 | +从https://github.com/zeromq/libzmq/releases/tag/v4.3.5 下载zeromq-4.3.5.tar.gz |
| 38 | +tar xvf zeromq-4.3.5.tar.gz |
| 39 | +cd zeromq-4.3.5/ |
| 40 | +./configure |
| 41 | +make |
| 42 | +sudo make install |
| 43 | +---- |
| 44 | + |
| 45 | +** 下载 groonga包,安装指定依赖 |
| 46 | +[literal] |
| 47 | +---- |
| 48 | +wget https://packages.groonga.org/source/groonga/groonga-latest.tar.gz |
| 49 | +tar xvf groonga-15.1.5.tar.gz |
| 50 | +cd groonga-15.1.5 |
| 51 | +#运行这个脚本安装依赖,支持apt和dnf包管理工具 |
| 52 | +./ setup.sh |
| 53 | +---- |
| 54 | + |
| 55 | +** 编译安装 |
| 56 | +[literal] |
| 57 | +---- |
| 58 | +# -S 指定groonga源码目录, -B 指定build目录,这个目录是个源码目录之外的一个只用于build的目录 |
| 59 | +cmake -S /home/ivorysql/groonga-15.1.5 -B /home/ivorysql/groonga_build --preset=release-maximum |
| 60 | +cmake --build /home/ivorysql/groonga_build |
| 61 | +sudo cmake --install /home/ivorysql/groonga_build |
| 62 | +# 更新动态链接库缓存 |
| 63 | +sudo ldconfig |
| 64 | +---- |
| 65 | + |
| 66 | +** 验证 groonga安装成功 |
| 67 | +[literal] |
| 68 | +---- |
| 69 | +$ groonga --version |
| 70 | +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] |
| 71 | +---- |
| 72 | + |
| 73 | +==== 安装 pgroonga |
| 74 | +[literal] |
| 75 | +---- |
| 76 | +wget https://packages.groonga.org/source/pgroonga/pgroonga-4.0.1.tar.gz |
| 77 | +tar xvf pgroonga-4.0.1.tar.gz |
| 78 | +cd pgroonga-4.0.1 |
| 79 | +---- |
| 80 | + |
| 81 | +编译PGroonga,有个选项:HAVE_MSGPACK=1,它是用于支持WAL,使用这个选项需要安装msgpack-c 1.4.1或者更高版本。在基于Debian的平台使用libmsgpack-dev包,在CentOS 7上用msgpack-devel |
| 82 | +[literal] |
| 83 | +---- |
| 84 | +#安装依赖 |
| 85 | +sudo apt install libmsgpack-dev |
| 86 | +---- |
| 87 | + |
| 88 | +运行make前确保pg_config命令的路径在PATH环境变量里 |
| 89 | +[literal] |
| 90 | +---- |
| 91 | +make HAVE_MSGPACK=1 |
| 92 | +make install |
| 93 | +---- |
| 94 | + |
| 95 | +== 创建Extension并确认PGroonga版本 |
| 96 | + |
| 97 | +psql 连接到数据库,执行如下命令: |
| 98 | +[literal] |
| 99 | +---- |
| 100 | +ivorysql=# CREATE extension pgroonga; |
| 101 | +CREATE EXTENSION |
| 102 | +
|
| 103 | +ivorysql=# SELECT * FROM pg_available_extensions WHERE name = 'pgroonga'; |
| 104 | + name | default_version | installed_version | comment |
| 105 | +---------+-----------------+-------------------+------------------------------------------------------------------------------- |
| 106 | + pgroonga| 4.0.1 | 4.0.1 | Super fast and all languages supported full text search index based on Groonga |
| 107 | +(1 row) |
| 108 | +---- |
| 109 | + |
| 110 | +== 使用 |
| 111 | +关于PGroonga的使用,请参阅 https://pgroonga.github.io/tutorial[PGroonga官方文档] |
0 commit comments