Bỏ qua đến nội dung chính
Thứ 2 – Thứ 6: 8:00 – 17:30
Công cụ & Tài liệu

Hướng dẫn cài đặt extension pg_trgm cho PostgreSQL thủ công từ mã nguồn

08/05/2025 2 phút đọc Kim Trien
Hướng dẫn cài đặt extension pg_trgm cho PostgreSQL thủ công từ mã nguồn
Nội dung bài viết
  1. 🧠 Mục tiêu
  2. ✅ 1. Tại sao cần làm thủ công?
  3. 🔧 2. Cài đặt thư viện cần thiết
  4. Trên Ubuntu/Debian:
  5. Trên CentOS/RHEL:
  6. 📥 3. Tải và giải nén mã nguồn PostgreSQL
  7. ⚙️ 4. Cấu hình cài đặt PostgreSQL vào thư mục tùy chỉnh
  8. 🔨 5. Build và cài đặt PostgreSQL
  9. 📦 6. Cài extension pg_trgm
  10. 🚀 7. Kích hoạt extension trong PostgreSQL
  11. 🔍 8. Kiểm tra extension
  12. 🎯 9. Ứng dụng: Tìm kiếm gần đúng (fuzzy search)
  13. 📌 Lưu ý
  14. ✅ Tổng kết

🧠 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ặc yum 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
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ặc icu thì thêm --without-readline hoặc --without-icu khi configure.
  • Đả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 đó.

Chia sẻ

Yêu cầu tư vấn

Để lại thông tin, Newnet sẽ liên hệ lại với bạn trong thời gian sớm nhất.