全部产品
Search
文档中心

ApsaraDB RDS:Menggunakan ekstensi RUM

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan ekstensi RUM dari ApsaraDB RDS for PostgreSQL untuk menjalankan pencarian teks penuh.

Prasyarat

Instans RDS menjalankan PostgreSQL 10 atau yang lebih baru.

Catatan

Jika instans RDS menjalankan PostgreSQL 14 atau PostgreSQL 15, versi mesin minor dari instans RDS harus 20221030 atau yang lebih baru. Untuk informasi lebih lanjut tentang cara melihat dan memperbarui versi mesin minor instans RDS Anda, lihat Perbarui Versi Mesin Minor Instans ApsaraDB RDS for PostgreSQL.

Informasi latar belakang

Generalized Inverted Index (GIN) memungkinkan Anda menjalankan pencarian teks penuh dengan menggunakan tipe data tsvector dan tsquery. Namun, pendekatan ini dapat menimbulkan beberapa masalah berikut:

  • Pengurutan Lambat

    ApsaraDB RDS for PostgreSQL hanya dapat mengurutkan kata-kata setelah mendapatkan lokasi kata-kata tersebut. Namun, GIN tidak menyimpan lokasi kata. Setelah ApsaraDB RDS for PostgreSQL menjalankan pemindaian berdasarkan indeks GIN, sistem harus melakukan pemindaian tambahan untuk mengambil lokasi kata.

  • Kueri Lambat untuk Frasa

    ApsaraDB RDS for PostgreSQL hanya dapat mencari frasa berdasarkan indeks GIN setelah mendapatkan lokasi frasa tersebut.

  • Pengurutan Timestamp Lambat

    GIN tidak menyimpan informasi terkait dalam indeks yang berisi morfem. Oleh karena itu, diperlukan pemindaian tambahan.

Ekstensi RUM dirancang berdasarkan GIN. Ekstensi ini memungkinkan Anda menyimpan lokasi kata atau timestamp di indeks RUM.

Namun, ekstensi RUM memerlukan waktu lebih lama daripada GIN untuk membangun dan menyisipkan indeks. Hal ini disebabkan oleh ekstensi RUM yang menghasilkan indeks berdasarkan write-ahead logging (WAL) log, serta indeks RUM yang dihasilkan berisi lebih banyak informasi dibandingkan kunci yang digunakan untuk enkripsi.

Aktifkan atau nonaktifkan ekstensi

  • Aktifkan Ekstensi

    CREATE EXTENSION rum;
  • Nonaktifkan Ekstensi

    DROP EXTENSION rum;

Operator universal

Tabel berikut menjelaskan operator yang disediakan oleh ekstensi RUM.

Operator

Tipe data

Deskripsi

tsvector <=> tsquery

float4

Mengembalikan jarak antara objek data tipe tsvector dan objek data tipe tsquery.

timestamp <=> timestamp

float8

Mengembalikan jarak antara dua timestamp.

timestamp <=| timestamp

float8

Mengembalikan hanya jarak ke timestamp sisi kiri.

timestamp |=> timestamp

float8

Mengembalikan hanya jarak ke timestamp sisi kanan.

Catatan

Tiga operator terakhir juga didukung untuk tipe data berikut: timestamptz, int2, int4, int8, float4, float8, money, dan oid.

Untuk informasi lebih lanjut tentang fungsi-fungsi yang disediakan oleh ekstensi RUM, kunjungi situs resmi.

Referensi

Metode penggunaan ekstensi RUM sama dengan metode penggunaan ekstensi open source. Untuk informasi lebih lanjut, lihat dokumentasi resmi.