Topik ini menjelaskan cara menggunakan ekstensi pg_jieba untuk menjalankan pencarian teks lengkap dalam bahasa Tiongkok pada instans ApsaraDB RDS untuk PostgreSQL.
Prasyarat
Instans RDS Anda harus menjalankan PostgreSQL 10.0 atau versi yang lebih baru.
Jika versi mesin utama dari instans RDS memenuhi persyaratan tetapi ekstensi belum didukung, perbarui versi mesin minor. Sebagai contoh, jika instans RDS Anda menjalankan PostgreSQL 17, versi mesin minor harus diperbarui ke 20241030 atau lebih baru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.
Tambahkan pg_jieba ke nilai parameter shared_preload_libraries dari instans RDS Anda.
Untuk informasi lebih lanjut tentang cara menambahkan pg_jieba ke nilai parameter shared_preload_libraries, lihat Modifikasi parameter instans ApsaraDB RDS untuk PostgreSQL.
Cara menggunakan ekstensi pg_jieba
Buat ekstensi pg_jieba.
CREATE EXTENSION pg_jieba;CatatanHanya akun dengan hak istimewa yang berwenang dapat menjalankan perintah di atas.
Hapus ekstensi pg_jieba.
DROP EXTENSION pg_jieba;CatatanHanya akun dengan hak istimewa yang berwenang dapat menjalankan perintah di atas.
Contoh 1:
SELECT * FROM to_tsvector('jiebacfg', '小明硕士毕业于中国科学院计算所,后在日本京都大学深造'); to_tsvector -------------------------------------------------------------------------------------------------------------- '中国科学院':5 '于':4 '后':8 '在':9 '小明':1 '日本京都大学':10 '毕业':3 '深造':11 '硕士':2 '计算所':6 ',':7 (1 row)Contoh 2:
SELECT * FROM to_tsvector('jiebacfg', '李小福是创新办主任也是云计算方面的专家'); to_tsvector ------------------------------------------------------------------------------------------- '专家':11 '主任':5 '也':6 '云计算':8 '创新':3 '办':4 '方面':9 '是':2,7 '李小福':1 '的':10 (1 row)
Fitur tambahan
Anda dapat melihat fitur tambahan dari ekstensi pg_jieba berdasarkan versi yang telah diinstal.
Jalankan pernyataan SQL berikut untuk menanyakan versi ekstensi pg_jieba:
SELECT * FROM pg_available_extensions WHERE name='pg_jieba';Fitur tambahan dalam versi 1.1.0
Ekstensi pg_jieba memungkinkan Anda mengonfigurasi beberapa kamus kustom dan beralih antara kamus-kamus tersebut.
-- Masukkan data ke dalam kamus kustom pertama. Secara default, data dimasukkan ke dalam kamus kustom pertama. Kamus kustom pertama direpresentasikan oleh 0. Nilai bobot kamus kustom pertama adalah 10. INSERT INTO jieba_user_dict VALUES ('阿里云'); INSERT INTO jieba_user_dict VALUES ('研发工程师',0,10); -- Gunakan kamus yang telah ditentukan sebelumnya dalam ekstensi pg_jieba untuk memisahkan teks Tiongkok. SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师'); to_tsvector ------------------------------------------------------ 'zth':1 '一个':6 '云':4 '工程师':8 '研发':7 '阿里':3 (1 row) -- Beralih ke kamus kustom pertama. Parameter jieba_load_user_dict() menentukan nomor urutan kamus kustom. SELECT jieba_load_user_dict(0); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师'); to_tsvector -------------------------------------------- 'zth':1 '一个':5 '研发工程师':6 '阿里云':3 (1 row)Ekstensi pg_jieba memungkinkan Anda melihat hasil segmentasi teks berdasarkan offset.
SELECT * FROM to_tsvector('jiebacfg_pos', 'zth是阿里云的一个研发工程师'); to_tsvector -------------------------------------------------------------------------------------- 'zth:0':1 '一个:8':6 '云:6':4 '工程师:12':8 '是:3':2 '的:7':5 '研发:10':7 '阿里:4':3'zth:0':1 ' One: 8':6 ' Cloud: 6':4 ' Engineer: 12':8 ' Yes: 3':2':7':5 ' R&D: 10':7 ' Ali: 4':3 (1 row)
Fitur tambahan dalam versi 1.2.0
Fungsi
jieba_load_user_dict()dioptimalkan untuk mengurangi penggunaan CPU dan memori.Parameter baru ditambahkan ke fungsi
jieba_load_user_dict()untuk menentukan apakah akan menggunakan kamus kustom selama pengambilan.Sintaksis
jieba_load_user_dict(parameter1, parameter2)Deskripsi parameter
Parameter
Deskripsi
parameter1
Menentukan nomor urutan kamus kustom yang ingin Anda muat.
parameter2
Menentukan apakah akan memuat kamus default.
0: memuat kamus default.
1: tidak memuat kamus default.
Contoh
INSERT INTO jieba_user_dict VALUES ('阿里云'); INSERT 0 1 INSERT INTO jieba_user_dict VALUES ('研发工程师',0,10); INSERT 0 1 -- Angka 0 pertama menunjukkan nomor urutan kamus kustom, dan angka 0 kedua menunjukkan bahwa kamus default dimuat. SELECT jieba_load_user_dict(0,0); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师'); to_tsvector -------------------------------------------- 'zth':1 '一个':5 '研发工程师':6 '阿里云':3 (1 row) SELECT jieba_load_user_dict(0,1); jieba_load_user_dict ---------------------- (1 row) SELECT * FROM to_tsvector('jiebacfg', 'zth是阿里云的一个研发工程师'); to_tsvector ------------------------------------------------------ 'zth':1 '一个':6 '云':4 '工程师':8 '研发':7 '阿里':3 (1 row)CatatanJika tabel
jieba_user_dictatau fungsijieba_load_user_dict()tidak ada, Anda harus memperbarui versi mesin minor dari instans RDS Anda ke 20220730 dan menginstal ulang ekstensi.Untuk informasi lebih lanjut tentang cara memperbarui versi mesin minor, lihat Perbarui versi mesin minor instans ApsaraDB RDS untuk PostgreSQL.
Jalankan pernyataan berikut untuk menginstal ulang ekstensi:
DROP EXTENSION pg_jieba; CREATE EXTENSION pg_jieba;
Referensi
Untuk informasi lebih lanjut tentang cara menggunakan ekstensi pg_jieba, lihat Dokumentasi resmi pg_jieba.