Pencarian Vektor Laravel Kini Mendukung MariaDB
Laravel 13 memungkinkan pengembang menjalankan kueri pencarian vektor asli terhadap MariaDB, menambahkan kemampuan pencarian semantik ke ekosistem Laravel tanpa memaksa peralihan ke PostgreSQL.
Dukungan baru ini menggantikan implementasi sebelumnya yang hanya terbatas pada PostgreSQL, sehingga metode whereVectorSimilarTo yang sudah dikenal kini dapat bekerja langsung dengan koneksi MariaDB. Jika Anda sedang membangun mesin rekomendasi, alat kemiripan dokumen, atau fitur apa pun yang mengandalkan logika “nearest-neighbor”, perubahan ini menghilangkan hambatan utama.
Mengapa perubahan ini penting
Query builder Laravel sebelumnya mendeteksi kebutuhan pencarian vektor dengan pengujian instanceof yang hanya mengenali koneksi PostgreSQL. Pendekatan tersebut mengikat fitur ini pada satu driver saja dan memenuhi basis kode dengan kondisi (conditionals) spesifik database.
Rilis versi 13 memindahkan logika tersebut ke dalam lapisan grammar dan menambahkan dua metode khusus driver:
supportsVectorDistance()– memberi tahu Laravel apakah koneksi saat ini dapat menghitung jarak vektor.compileVectorDistanceExpression()– membangun fragmen SQL yang melakukan perhitungan tersebut.
Dengan memberikan tanggung jawab ini kepada setiap driver, framework tersebut meninggalkan trik “type-checking” dan membuka jalan bagi ekstensi di masa mendatang. Menambahkan dukungan untuk database lain kini berarti cukup mengimplementasikan beberapa metode driver, alih-alih menyebarkan blok kondisi di berbagai tempat.
MariaDB mendapatkan fungsi asli, MySQL tidak
MariaDB hadir dengan fungsi vektor asli. MySQL standar tidak memilikinya kecuali jika Anda menggunakan layanan cloud khusus yang menambahkan ekstensi AI.
Laravel secara sengaja menghindari perhitungan kemiripan di sisi PHP. Menghitung vektor di PHP akan merusak paginasi dan memperlambat aplikasi tanpa peringatan. Menampilkan error saat driver tidak dapat menangani operasi tersebut memberikan mode kegagalan yang lebih aman.
Apa yang bisa dilakukan pengguna MySQL sekarang
Jika stack Anda menggunakan MySQL biasa, Anda memiliki tiga jalur realistis:
- Migrasi ke MariaDB – pengganti langsung (drop-in replacement) untuk sebagian besar beban kerja MySQL yang memberi Anda dukungan vektor asli sambil tetap mempertahankan ekosistem yang sama.
- Tambahkan layanan pencarian khusus – jalankan instansi PostgreSQL yang ringan bersamaan dengan MySQL khusus untuk kueri kemiripan.
- Hidup tanpanya – pencarian semantik bersifat opsional bagi banyak aplikasi; jika manfaatnya tidak sebanding dengan biaya operasional, tetap menggunakan MySQL mungkin merupakan pilihan yang pragmatis.
Setiap opsi memiliki konsekuensi (trade-offs) dalam hal kompleksitas operasional, latensi, dan beban pemeliharaan. Keputusan bergantung pada seberapa sentral peran pencarian vektor dalam proposisi nilai produk Anda.
Pelajaran untuk desain API
Perubahan Laravel ini mengilustrasikan prinsip desain yang lebih luas: hindari menyebarkan pemeriksaan spesifik database di seluruh logika inti. Ketika sebuah fitur bergantung pada kemampuan mesin tertentu, enkapsulasikan ketergantungan tersebut di balik antarmuka (interface) driver. Pendekatan berbasis grammar yang baru melakukan hal tersebut, mempersiapkan framework untuk ekstensi di masa depan tanpa harus mengubah kembali query builder inti.
Pengembang yang membangun paket mereka sendiri harus memperhatikan hal ini. Jika Anda menemukan pemeriksaan instanceof untuk tipe database di dalam lapisan layanan (service layer) Anda, pindahkan tanggung jawab tersebut ke driver atau adapter khusus. Hal ini menjaga API publik tetap bersih dan membuat kode Anda siap untuk masa depan (future-proof).
