Topik ini menjelaskan cara menggunakan ekstensi smlar untuk menghitung kesamaan antara dua array dengan tipe data yang sama.
Prasyarat
Instansi RDS menjalankan PostgreSQL 10 atau versi yang lebih baru.
Jika versi mesin utama dari instansi RDS memenuhi persyaratan tetapi ekstensi masih tidak didukung, perbarui versi mesin minor dari instansi RDS. Sebagai contoh, jika instansi RDS Anda menjalankan PostgreSQL 17, versi mesin minor dari instansi tersebut harus 20241030 atau lebih baru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.
Informasi latar belakang
Ekstensi smlar menyediakan beberapa fungsi untuk menghitung kesamaan antara dua array dengan tipe data yang sama. Ekstensi ini juga menyediakan parameter untuk mengontrol metode perhitungan kesamaan. Semua tipe data bawaan didukung.
Deskripsi fungsi
float4 smlar(anyarray, anyarray)
Menghitung kesamaan antara dua array dengan tipe data yang sama.
float4 smlar(anyarray, anyarray, bool useIntersect)
Menghitung kesamaan antara dua array dengan tipe data komposit. Tipe data komposit didefinisikan sebagai berikut:
CREATE TYPE type_name AS (element_name anytype, weight_name FLOAT4);Ketika parameter useIntersect disetel ke true, hanya bagian yang berisi elemen duplikat yang dihitung. Ketika parameter useIntersect disetel ke false, semua elemen digunakan untuk perhitungan.
float4 smlar(anyarray a, anyarray b, text formula)
Menghitung kesamaan antara dua array dengan tipe data yang sama. Array-array tersebut ditentukan oleh parameter formula.
Variabel yang telah ditentukan sebelumnya untuk formula dijelaskan sebagai berikut:
N.i: Jumlah elemen umum dalam dua array.
N.a: Jumlah elemen unik dalam array a.
N.b: Jumlah elemen unik dalam array b.
float4 set_smlar_limit(float4)
Menetapkan parameter smlar.threshold.
float4 show_smlar_limit()
Menampilkan nilai parameter smlar.threshold.
anyarray % anyarray
Mengembalikan true jika kesamaan antara array lebih besar dari nilai parameter smlar.threshold. Jika tidak, fungsi mengembalikan false.
text[] tsvector2textarray(tsvector)
Mengonversi tipe tsvector menjadi tipe text.
anyarray array_unique(anyarray)
Mengurutkan elemen-elemen (tidak termasuk elemen duplikat) dalam sebuah array.
float4 inarray(anyarray, anyelement)
Mengembalikan 1 jika nilai parameter anyelement ada dalam nilai parameter anyarray. Jika tidak, fungsi mengembalikan 0.
float4 inarray(anyarray, anyelement, float4, float4)
Mengembalikan nilai parameter ketiga jika anyelement ada dalam anyarray. Jika tidak, fungsi mengembalikan nilai parameter keempat.
Untuk informasi lebih lanjut tentang deskripsi parameter dan tipe data yang didukung, kunjungi smlar.
Gunakan ekstensi
Setelah terhubung ke sebuah instansi, jalankan pernyataan berikut untuk membuat ekstensi smlar:
testdb=> create extension smlar;Jalankan pernyataan berikut untuk menggunakan fungsi dasar smlar:
testdb=> SELECT smlar('{1,4,6}'::int[], '{5,4,6}' ); smlar ---------- 0.666667 (1 row) testdb=> SELECT smlar('{1,4,6}'::int[], '{5,4,6}', 'N.i / sqrt(N.a * N.b)' ); smlar ---------- 0.666667 (1 row)Jalankan pernyataan berikut untuk menghapus smlar:
testdb=> drop extension smlar;