All Products
Search
Document Center

PolarDB:ZomboDB

Last Updated:Mar 29, 2026

ZomboDB mengintegrasikan mesin pencarian teks lengkap dan analitik Elasticsearch langsung ke dalam PolarDB for PostgreSQL. Berbeda dengan pencarian teks lengkap bawaan PostgreSQL (tsvector/tsquery), ZomboDB mendukung hasil yang diurutkan berdasarkan relevansi, ekspresi kueri kompleks, dan analitik berbasis faset pada set data besar—tanpa memerlukan kode sinkronisasi atau integrasi kustom.

Kapan menggunakan ZomboDB

ZomboDB cocok digunakan ketika aplikasi Anda memerlukan pencarian teks lengkap tingkat lanjut yang melampaui kemampuan pencarian teks lengkap bawaan PostgreSQL—misalnya, peringkat relevansi, kueri kedekatan (proximity queries), atau analitik berbasis agregasi pada bidang teks besar.

Jika kebutuhan Anda terbatas pada pencocokan kata kunci sederhana pada tabel kecil, pencarian teks lengkap bawaan PostgreSQL sudah cukup dan menghindari beban tambahan menjalankan kluster Elasticsearch eksternal.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster PolarDB for PostgreSQL yang menjalankan PostgreSQL 11

  • Kluster Elasticsearch yang sedang berjalan (ZomboDB tidak mendukung Elasticsearch 7.x dan 8.x)

  • URL Titik akhir kluster Elasticsearch (misalnya, http://localhost:9200/)

Instalasi dan penghapusan ZomboDB

Instal ekstensi ZomboDB:

CREATE EXTENSION zombodb;

Hapus ekstensi tersebut jika tidak lagi diperlukan:

DROP EXTENSION zombodb;

Menyiapkan dan menjalankan kueri pada indeks ZomboDB

Contoh berikut memandu Anda melalui pembuatan tabel, pembuatan indeks ZomboDB yang terhubung ke kluster Elasticsearch, penyisipan data sampel, dan menjalankan kueri teks lengkap.

Langkah 1: Buat tabel

CREATE TABLE products (
    id               SERIAL8 NOT NULL PRIMARY KEY,
    name             text NOT NULL,
    keywords         varchar(64)[],
    short_summary    text,
    long_description zdb.fulltext,
    price            bigint,
    inventory_count  integer,
    discontinued     boolean default false,
    availability_date date
);

Langkah 2: Buat indeks ZomboDB

Buat indeks yang mengarah ke kluster Elasticsearch Anda. ZomboDB mengelola indeks remote yang sesuai dan menjaganya tetap selaras dengan tabel PostgreSQL Anda.

CREATE INDEX idxproducts
          ON products
       USING zombodb ((products.*))
        WITH (url='localhost:9200/');
        -- Ganti localhost:9200 dengan Titik akhir kluster Elasticsearch Anda.
        -- ZomboDB tidak mendukung Elasticsearch 7.x dan 8.x.

Langkah 3: Masukkan data sampel

INSERT INTO products (name, keywords, short_summary, long_description, price, inventory_count)
VALUES
  ('Wooden Baseball Bat',  ARRAY['sports', 'outdoor'],
   'Classic wooden bat for recreational play.',
   'A sturdy wooden bat suitable for backyard games and casual leagues.',
   4999, 120),
  ('Boxing Gloves',        ARRAY['sports', 'box', 'training'],
   'Professional boxing gloves for heavy bag training.',
   'Durable leather gloves with wrist support, ideal for gym workouts.',
   14999, 45),
  ('Running Shoes',        ARRAY['footwear', 'running', 'outdoor'],
   'Lightweight shoes for road and trail running.',
   'Breathable mesh upper with cushioned sole for long-distance comfort.',
   8999, 200);

Langkah 4: Jalankan kueri menggunakan ZomboDB

Gunakan operator ==>—operator pencarian kustom ZomboDB—untuk menjalankan ekspresi kueri terhadap indeks tersebut. Ekspresi ini mendukung pencocokan kata kunci, kedekatan frasa, dan filter rentang dalam satu kueri.

Kueri berikut mencari produk yang keywords-nya mencakup sports atau box, atau yang long_description-nya berisi frasa wooden away dalam jarak lima kata, dengan price antara 1.000 dan 20.000.

SELECT *
  FROM products
 WHERE products ==> '(keywords:(sports OR box) OR long_description:"wooden away"~5) AND price:[1000 TO 20000]';

Hasil yang diharapkan: baris untuk Wooden Baseball Bat dan Boxing Gloves sesuai, karena harganya berada dalam rentang yang ditentukan dan kata kunci atau deskripsinya memenuhi ekspresi kueri.

Catatan Untuk sintaks kueri lengkap ZomboDB—termasuk pencocokan frasa, operator kedekatan, dan filter rentang—lihat dokumentasi ZomboDB.

Langkah berikutnya