🧠 Mục tiêu
Cài extension pg_trgm
(dùng cho tìm kiếm mờ – fuzzy search) trong PostgreSQL bằng cách build từ mã nguồn, cài vào thư mục riêng như /usr/local/apps/pgsql16
.
✅ 1. Tại sao cần làm thủ công?
- PostgreSQL cài qua Webuzo thường không kèm extension như
pg_trgm
. - Lệnh
apt install postgresql-contrib
hoặcyum install
không hỗ trợ thư mục cài tùy chỉnh. - Biên dịch thủ công giúp chủ động kiểm soát và giữ hệ thống sạch.
🔧 2. Cài đặt thư viện cần thiết
Trên Ubuntu/Debian:
sudo apt update
sudo apt install build-essential libreadline-dev zlib1g-dev flex bison libxml2-dev libxslt1-dev libssl-dev libicu-dev
Trên CentOS/RHEL:
sudo yum groupinstall "Development Tools"
sudo yum install readline-devel zlib-devel flex bison libxml2-devel libxslt-devel openssl-devel libicu-devel
📥 3. Tải và giải nén mã nguồn PostgreSQL
wget https://ftp.postgresql.org/pub/source/v16.2/postgresql-16.2.tar.gz
tar -xf postgresql-16.2.tar.gz
cd postgresql-16.2
⚙️ 4. Cấu hình cài đặt PostgreSQL vào thư mục tùy chỉnh
./configure --prefix=/usr/local/apps/pgsql16 --without-icu
⚠️ Nếu đã cài libicu-dev, có thể bỏ
--without-icu
.🔨 5. Build và cài đặt PostgreSQL
make
make install
📦 6. Cài extension pg_trgm
cd contrib
make
make install
Extension sẽ được cài vào:
/usr/local/apps/pgsql16/share/extension/pg_trgm.control
/usr/local/apps/pgsql16/lib/postgresql/pg_trgm.so
🚀 7. Kích hoạt extension trong PostgreSQL
/usr/local/apps/pgsql16/bin/psql -U postgres -d your_database
-- Trong psql:
CREATE EXTENSION pg_trgm;
🔍 8. Kiểm tra extension
\dx
🎯 9. Ứng dụng: Tìm kiếm gần đúng (fuzzy search)
SELECT * FROM products
WHERE name % 'tra sam dua'
ORDER BY similarity(name, 'tra sam dua') DESC;
%
là toán tử tìm kiếm fuzzy do pg_trgm
cung cấp.📌 Lưu ý
- Thiếu
readline
hoặcicu
thì thêm--without-readline
hoặc--without-icu
khiconfigure
. - Đảm bảo dùng đúng
pg_config
từ thư mục PostgreSQL tùy chỉnh.
✅ Tổng kết
Extension pg_trgm
rất hữu ích cho tìm kiếm gần đúng (fuzzy search). Khi dùng Webuzo hoặc hệ thống cài đặt không tiêu chuẩn, anh cần build thủ công để cài đặt thành công. Bài viết này hướng dẫn chi tiết và rõ ràng cho quy trình đó.
CÔNG TY CỔ PHẦN CÔNG NGHỆ NEWNET
Địa chỉ: 554/10 Phạm Văn Đồng, P. 13, Q. Bình Thạnh, TP. Hồ Chí Minh
Email: [email protected]
Hotline: 0789 99 4747
Website: https://newnet.vn