🧠 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

🎯 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ặ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 đó.

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