Catatan Rilis
Temukan apa saja yang baru di Milvus! Halaman ini merangkum fitur-fitur baru, peningkatan, masalah yang diketahui, dan perbaikan bug pada setiap rilis. Kami menyarankan Anda untuk mengunjungi halaman ini secara rutin guna mengetahui pembaruan terbaru.
v3.0.0
Tanggal rilis: 29 Juli 2026
| Versi Milvus | Versi SDK Python | Versi SDK Node.js | Versi SDK Java | Versi SDK Go |
|---|---|---|---|---|
| 3.0.0 | 3.0.1 | 3.0.3 | 3.0.5 | 3.0.0 |
Milvus 3.0.0 telah dirilis secara resmi! Berlandaskan arsitektur lake-native yang diperkenalkan pada versi 3.0-beta, rilis ini menyempurnakan apa yang telah dimulai pada versi beta: External Collection kini mencakup lebih banyak alur kerja lakehouse; skema mendukung penambahan, pengisian ulang, dan penghapusan data secara online; indeks sparse dibangun ulang menggunakan SINDI; StructArray dan pencarian berfacet melengkapi mesin pengambilan data; FAISS passthrough dan TEXT memperluas pilihan indeks dan modus; serta Woodpecker berjalan sebagai layanan mandiri.
Tonton video di bawah ini untuk mempelajari lebih lanjut tentang Milvus 3.0 dan sesi tanya jawab (AMA) dengan pengembang inti:
Jika Anda baru mengenal seri 3.0, bagian ringkasan fitur Core 3.0 di bawah ini merangkum kemampuan yang diperkenalkan dalam 3.0-beta; catatan rilis 3.0-beta berisi penjelasan lengkapnya.
Yang baru di 3.0.0 (sejak 3.0-beta)
Koleksi Eksternal: alur kerja lakehouse yang lebih lengkap
3.0-beta memperkenalkan Koleksi Eksternal: merujuk file lakehouse di tempat, membangun indeks, dan mencarinya tanpa menyalin data ke Milvus. Rilis ini memperluasnya menuju alur kerja pencarian lakehouse yang lengkap. Kolom eksternal kini dapat menjadi sumber untuk kolom keluaran fungsi seperti vektor langka BM25, tanda tangan MinHash, dan embedding teks, sehingga kolom pencarian berbasis teks dan model dapat dibangun di dalam Milvus tanpa menyalin tabel sumber. Refresh juga mendukung evolusi skema aditif: ketika tabel eksternal mendapatkan kolom baru, Milvus memperbarui segmen yang terpengaruh alih-alih membangun ulang koleksi.
Rilis ini juga menambahkan format eksternal " milvus-table " yang memperlakukan metadata Milvus Snapshot dan manifes Storage V3 sebagai sumber eksternal, sehingga snapshot koleksi itu sendiri dapat disajikan sebagai tabel eksternal — sistem batch dan penyajian mendapatkan tampilan bersama yang didukung manifes atas data yang sama.
Untuk informasi lebih lanjut, lihat Membuat Koleksi Eksternal dan Snapshot.
Skema fleksibel: tambahkan, isi ulang, dan hapus kolom secara online
Skema tidak tetap statis di lingkungan produksi — model yang disematkan diganti, fitur diperbarui, bidang dihapus — dan hal ini biasanya berarti perlu membangun ulang seluruh koleksi dengan waktu henti atau penulisan ganda. Versi 3.0.0 menutup celah ini: kolom dapat ditambahkan, diisi, dan dihapus sementara layanan tetap berjalan.
Pengisian ulang (backfill) berfungsi dua arah. Pengisian ulang eksternal menangani nilai yang dihitung di luar Milvus: tambahkan kolom, ambil snapshot koleksi sebagai titik awal yang konsisten, jalankan tugas secara offline, tulis nilai kembali, dan Milvus mengindeks kolom baru secara bertahap — pembaruan model embedding pada ratusan juta baris menjadi proses yang berjalan lancar tanpa downtime. Pengisian ulang internal mencakup nilai-nilai yang diturunkan dari kernel: lampirkan fungsi BM25 atau MinHash ke koleksi yang ada, dan bidang hasilnya dihitung secara otomatis berdasarkan data yang ada.
Untuk informasi lebih lanjut, lihat Menambahkan Bidang ke Koleksi yang Sudah Ada.
Perombakan indeks spars: SINDI, Block-Max WAND, dan Block-Max MaxScore
Milvus 3.0 meningkatkan indeks vektor spars di seluruh sistem. Versi ini memperkenalkan algoritma pencarian baru — SINDI, Block-Max WAND, dan Block-Max MaxScore — bersama dengan kompresi daftar terbalik, kuantisasi yang dapat dikonfigurasi, serta pemilihan algoritma pencarian per beban kerja. Pemuatan mmap, serialisasi, dan penilaian BM25 juga dioptimalkan, sehingga mengurangi beban penyimpanan dan pemuatan indeks untuk pencarian vektor spars dan teks lengkap berskala besar. Dalam pengujian internal, indeks BM25 yang terkompresi ukurannya kira-kira 3 kali lebih kecil daripada indeks langka 2.6 dengan tingkat recall yang sebanding, dan SINDI mencapai hingga sekitar 10 kali QPS MaxScore pada embedding langka yang dipelajari. Setelah versi indeks baru diaktifkan (lihat Catatan kompatibilitas dan perilaku), SINDI menjadi default untuk pencarian IP spars, sedangkan MaxScore menjadi default untuk BM25.
Cakupan StructArray
StructArray kini mendukung nilai null, indeks bitmap, penambahan bidang dinamis pada koleksi aktif, serta pembaruan parsial bidang struct melalui upsert, dengan cakupan REST dan impor massal yang sesuai.
Pencarian tingkat elemen menambahkan pencarian hibrida di seluruh sub-bidang vektor dengan penggabungan per entitas yang dapat dikonfigurasi (varian max / sum / avg / top-k), ditambah pencarian rentang dan pengelompokan di dalamnya. Penyaringan bersarang mencakup predikat element_filter, kuantifier MATCH_ANY / MATCH_ALL / MATCH_LEAST / MATCH_MOST / MATCH_EXACT, akses sub-bidang posisional seperti tags[0][name], dan array_length() pada kolom struct.
Untuk informasi lebih lanjut, lihat StructArray dan Operator StructArray.
Agregasi Pencarian dan pencarian berfacet
Agregasi Kueri dari versi beta menghitung statistik yang tepat atas data yang difilter; versi 3.0.0 menambahkan pemfilteran berdasarkan aspek (faceting) pada jalur pencarian. Tentukan bidang aspek pada saat pencarian, dan Milvus akan mengembalikan nilai-nilai aspek teratas, masing-masing diwakili oleh anggota yang paling sesuai dalam peringkat ANN dan dilengkapi dengan agregat seperti COUNT dan AVG — bilah samping pencarian berfacet (merek, kisaran harga, atribut) dalam satu permintaan, alih-alih mengambil data berlebihan dan menghitungnya di sisi klien.
Penataan ulang melalui Rantai Fungsi
Penilaian ulang kini dapat digabungkan melalui API Rantai Fungsi, yang menjalankan pipa berurutan dan bertipe sebagai bagian dari satu permintaan pencarian. Sebuah rantai dapat menggabungkan penilaian ulang L0 awal pada QueryNode dengan penataan ulang peringkat pasca-reduksi L2 pada Proxy, mendukung transformasi dan kombinasi skor, penataan ulang peringkat berbasis model, penyortiran, serta pemangkasan kandidat tanpa perlu orkestrasi di sisi klien. Rilis ini juga menambahkan penilaian XGBoost bawaan untuk penataan ulang peringkat L0 menggunakan model UBJ yang terdaftar sebagai FileResources, bersama dengan Penyedia Inferensi Hugging Face untuk embedding teks yang dikelola server dan penataan ulang peringkat kesamaan kalimat.
Bidang teks panjang TEXT
Kolom TEXT menjadikan teks panjang sebagai prioritas utama, dengan batasan panjang di sisi penyimpanan dihapus: kolom ini mendukung text_match, phrase_match, dan BM25. Nilai di bawah 64 KB tetap disimpan secara inline; nilai yang lebih besar disimpan ke berkas LOB tingkat partisi dalam format Vortex, dengan kolom hanya menyimpan referensi (file_id, offset). File LOB dibagikan di seluruh segmen, sehingga pemadatan memindahkan referensi alih-alih menulis ulang teks. Untuk RAG, ini berarti mengambil vektor dan teks sumber dari penyimpanan yang sama dalam satu IO — tidak perlu mengoperasikan penyimpanan blob eksternal.
Passthrough indeks FAISS
Jenis indeks " FAISS " yang baru menerima string pabrik indeks Faiss apa pun melalui parameter " faiss_index_name " — IVF64,Flat, HNSW16,Flat, OPQ16,IVF64,PQ16x4 — dengan parameter pencarian diteruskan, sehingga resep Faiss dapat direproduksi langsung di Milvus.
Dukungan format Vortex dan Lance
Lapisan penyimpanan kini dilengkapi dengan dua format kolom terbuka: Vortex sebagai format internal generasi berikutnya — pengkodean adaptif (kamus, RLE, pengemasan bit, kompresi khusus float), dekompresi tanpa penyalinan, dioptimalkan untuk beban kerja campuran vektor + skalar — dan Lance bersama Parquet untuk pertukaran ekosistem terbuka. Vortex akan menjadi format internal default, dengan filter pushdown dan varian lokal yang sedang direncanakan.
Penerapan Woodpecker secara mandiri
Woodpecker, WAL yang menjadi inti jalur penulisan streaming, kini dapat diterapkan sebagai layanan independen, bukan tertanam di node lain — penskalaan independen, isolasi kesalahan, dan kemampuan pengamatan, seperti layanan mikro lainnya. Hal ini sangat penting untuk klaster besar dan beban kerja penulisan tinggi.
Ringkasan fitur inti 3.0
Fitur-fitur di bawah ini telah diperkenalkan dalam 3.0-beta dan merupakan bagian dari 3.0.0; lihat catatan beta untuk penjelasan lengkapnya.
- Koleksi Eksternal — kueri data lakehouse (Parquet, Lance, Iceberg, Vortex) di tempat: tanpa penyalinan, hanya baca, disinkronkan melalui penyegaran tambahan.
- Snapshot — tampilan koleksi read-only pada titik waktu tertentu berdasarkan referensi segmen, dengan penyimpanan marjinal mendekati nol.
- Penyimpanan V3 (Loon) — penyimpanan kolom berbasis manifest pada penyimpanan objek; fondasi untuk Snapshot dan Koleksi Eksternal.
- Query / Search ORDER BY — penyortiran multi-bidang di sisi server dengan ASC / DESC per bidang.
- Agregasi Kueri — COUNT / SUM / AVG / MIN / MAX dengan pengelompokan, dievaluasi di sisi server.
- EmbList + DiskANN — pengindeksan multi-vektor pada disk untuk daftar embedding StructArray, dengan jalur akselerasi seperti Muvera dan Lemur.
- Fungsi MinHash (doc-in, doc-out) — tanda tangan MinHash di sisi server ditambah "
MINHASH_LSH" untuk deteksi duplikat hampir identik. - Vektor yang dapat bernilai NULL — NULL pada keenam tipe vektor; pencarian melewati baris NULL, dan AddField diperluas ke bidang vektor.
- TTL Entitas — kedaluwarsa per baris yang ditentukan oleh bidang TIMESTAMPTZ.
- FileResource — kamus yang dikelola klaster, daftar sinonim, dan daftar kata penghalang untuk penganalisis, BM25, dan Text Match.
- Force Merge — pemadatan segmen yang dipicu oleh operator, dalam mode sinkron atau asinkron.
Catatan kompatibilitas dan perilaku
- Storage V3 (Loon) dinonaktifkan secara default. Fitur yang bergantung padanya — seperti Snapshot dan bidang TEXT — memerlukan pengaktifan manual melalui
common.storage.useLoonFFI. Storage V3 akan diaktifkan secara default pada rilis berikutnya. - Kompatibilitas dan rollback dari 2.6 ke 3.0 dijamin — penerapan versi 3.0 dapat dikembalikan ke versi 2.6. Namun, setelah Anda mengaktifkan atau menggunakan fitur yang mengubah format data serial (misalnya Storage V3), rollback tidak lagi dimungkinkan.
- Versi indeks baru saat ini bersifat opsional. Algoritma indeks yang baru diperkenalkan memerlukan penyesuaian manual terhadap versi indeks target (
dataCoord.targetVecIndexVersionmenjadi 10,dataCoord.targetScalarIndexVersionmenjadi 4) sebelum berlaku; rilis berikutnya akan mengaktifkannya secara default. - Gambar GPU beralih ke CUDA 12.9 dan tidak lagi mempertahankan kompatibilitas GPU Ubuntu 20.04.
v3.0-beta
Tanggal rilis: 9 Mei 2026
| Versi Milvus | Versi SDK Python | Versi SDK Node.js |
|---|---|---|
| 3.0-beta | 3.0.0 | 3.0.0 |
Milvus 3.0-beta memperluas basis data vektor Milvus dengan integrasi baru ke dalam ekosistem Open Lake: Fitur External Collection memungkinkan Milvus melakukan kueri terhadap tabel Open Lake eksternal tanpa salinan data (zero-copy), dan Spark dapat membaca koleksi Milvus secara langsung melalui Snapshot. Rilis ini juga menghadirkan pencarian yang lebih kaya, skema yang lebih ekspresif, penyesuaian pencarian teks yang lebih mendalam, kontrol siklus hidup data dan model yang lebih terperinci, serta kontrol sisi operator yang lebih banyak. Milvus 3.0 merupakan inti dari Zilliz Lakebase, yang mendukung penyajian terpadu, penemuan, dan pemrosesan batch.
Fitur Utama
Koleksi Eksternal
Dalam pipa data AI pada umumnya, terabyte embedding dan metadata sudah tersimpan di penyimpanan objek sebagai tabel Parquet, Lance, atau Iceberg. Menyalin data tersebut ke Milvus akan menggandakan biaya penyimpanan, menambah pipa ETL yang harus tetap sinkron, dan mengalihkan tata kelola data dari pelanggan.
Pengumpulan Eksternal menghilangkan proses penyalinan tersebut. Koleksi Milvus dapat merujuk ke file di lokasi aslinya, dan Milvus hanya mengelola skema, indeks, serta eksekusi kueri. Pembaruan bertahap memastikan Koleksi tetap selaras dengan file aslinya. Pelanggan yang datanya tidak dapat dipindahkan dari data lake, seperti tim keuangan dan kesehatan, dapat menjalankan pencarian vektor terhadap data tersebut di lokasi aslinya. Satu set data yang berada di data lake juga dapat disajikan dari beberapa instance Milvus secara bersamaan.
Untuk informasi lebih lanjut, lihat Membuat Koleksi Eksternal.
Snapshot
Penyajian dan penemuan batch sering kali memerlukan Koleksi yang sama pada waktu yang bersamaan. Evaluasi model A/B, deduplikasi skala besar, validasi pengisian ulang, dan pengembalian versi semuanya memerlukan tampilan Koleksi yang stabil sementara penulisan data masih berlangsung.
Snapshot membuat tampilan Koleksi pada titik waktu tertentu yang hanya dapat dibaca dengan merujuk pada segmen yang ada, bukan dengan menyalin data, sehingga biaya penyimpanan marjinalnya mendekati nol. Pekerjaan batch dapat membaca dari Snapshot di bawah isolasi bergaya MVCC sementara Koleksi yang aktif tetap menerima penulisan data.
Untuk informasi lebih lanjut, lihat Snapshot, Mengelola Snapshot, dan Kasus Penggunaan Snapshot.
Urutan Query / Pencarian
Pencarian dan Kueri kini mendukung pengurutan multi-kolom, dengan proses pengurutan ditangani langsung oleh kernel Milvus dan opsi " ASC " serta " DESC " dapat disesuaikan per kolom. Hal ini mengatasi celah umum dalam produksi: pengurutan Top-K berdasarkan jarak saja seringkali tidak sesuai dengan kebutuhan bisnis ketika item yang paling mirip bukanlah yang termurah, terbaru, atau paling populer.
Aplikasi tidak lagi perlu mengambil hasil secara berlebihan dan melakukan pengurutan ulang di sisi klien untuk menghasilkan peringkat gabungan.
Untuk informasi lebih lanjut, lihat Mengurutkan Hasil Pencarian berdasarkan Bidang Skalar dan Mengurutkan Hasil Kueri.
Agregasi Kueri
Dulu, untuk menghasilkan statistik distribusi penyewa, hitungan kelengkapan bidang, atau kemajuan peluncuran versi dari Koleksi Milvus, diperlukan penarikan entitas yang cocok kembali ke klien dan pengagregasiannya di sana. Milvus 3.0 mengintegrasikan agregasi skalar bergaya SQL ke dalam kernel. Panggilan kueri menerima ekspresi " group_by_fields " dan ekspresi agregasi dalam " output_fields", termasuk " count(*)", " count(<field>)", " sum(<field>)", " avg(<field>)", " min(<field>)", dan " max(<field>)". Agregasi dievaluasi di sisi server setelah penyaringan.
Untuk informasi lebih lanjut, lihat Hasil Kueri Agregat.
Vektor Null
Embedding sering dihasilkan secara asinkron, sehingga suatu entitas dapat tiba sebelum vektornya. Data multimodal juga memiliki celah alami, seperti video tanpa teks atau produk tanpa gambar. Versi sebelumnya tidak memiliki solusi yang memadai: aplikasi menunda penulisan hingga vektor siap atau mengisi vektor tempatholder, dan kedua pilihan tersebut merugikan kualitas pencarian.
Milvus 3.0 mendukung nilai NULL pada bidang vektor di seluruh enam jenis vektor. Pencarian secara otomatis melewati vektor NULL, kualitas pencarian tidak terpengaruh, dan vektor NULL secara efektif tidak memakan ruang penyimpanan. Fitur " AddField " juga berlaku untuk bidang vektor dalam perubahan ini: dengan " nullable=True", koleksi yang sudah ada dapat menambahkan bidang vektor baru secara online tanpa perlu rebuild.
Untuk informasi lebih lanjut, lihat Bidang yang Dapat Bernilai NULL.
Kamus Kustom & Kamus Sinonim
Tokenizer bawaan tidak selalu memenuhi persyaratan kualitas pencarian produksi. Bahasa Mandarin, domain vertikal seperti kedokteran, hukum, dan kimia, serta korpus multibahasa dapat memperoleh manfaat besar dari kamus kustom dan tabel sinonim. Hingga saat ini, sumber daya ini sebagian besar berfungsi sebagai penulisan ulang kueri di sisi aplikasi.
Milvus 3.0 menambahkan mekanisme FileResource untuk mendaftarkan kamus tokenizer kustom, daftar sinonim, daftar kata penghalang, dan aturan pemisah kata majemuk. Setelah didaftarkan, suatu sumber daya dapat dirujuk dari tokenizer atau filter mana pun dan berlaku pada BM25, penganalisis, dan Text Match. Kamus dan sinonim kini dapat diberi versi dan dikelola secara terpusat, bukan tersebar di seluruh kode aplikasi.
Untuk informasi lebih lanjut, lihat Mengelola Sumber Daya File.
TTL Entitas
TTL tingkat koleksi dan tingkat partisi terlalu kasar untuk banyak skenario siklus hidup dan kepatuhan. Penyewa yang berbeda di dalam Koleksi yang sama sering kali memiliki aturan penyimpanan yang berbeda, dan entitas individu mungkin perlu kedaluwarsa sesuai jadwal yang tidak sesuai dengan bagian Koleksi lainnya.
Milvus 3.0 mendukung TTL per entitas. Tentukan bidang ` TIMESTAMPTZ ` dalam skema, tandai sebagai bidang TTL melalui properti Koleksi, dan Milvus akan secara otomatis menghapus entitas yang telah kadaluwarsa. Fitur ini mencakup permintaan "hak untuk dilupakan", data sesi yang kadaluwarsa, serta riwayat percakapan yang dibatasi tanpa perlu pembersihan di sisi aplikasi.
Untuk informasi lebih lanjut, lihat Tetapkan TTL Tingkat Entitas.
MinHash DIDO (Doc-in, Doc-out)
Milvus 2.6 menambahkan indeks MINHASH_LSH untuk deteksi duplikat hampir identik berbasis himpunan, tetapi aplikasi masih harus menghitung tanda tangan MinHash sebelum menulis data ke Milvus.
Milvus 3.0 menambahkan fungsi MinHash di sisi server. Deklarasikan bidang masukan ` VARCHAR ` dan bidang keluaran ` BINARY_VECTOR ` dalam skema, lampirkan fungsi ` FunctionType.MINHASH `, dan Milvus akan menghitung tanda tangan tersebut selama proses penyisipan, penyisipan massal, dan pencarian. Bersama dengan ` MINHASH_LSH`, fitur ini mendukung alur kerja deduplikasi untuk dataset besar, pembuatan sidik jari, dan deteksi plagiarisme di dalam Milvus.
Untuk informasi lebih lanjut, lihat Fungsi MinHash.
EmbList + DISKANN
Asumsi “satu entitas = satu vektor” tidak lagi sesuai dengan pencarian modern. Dokumen panjang dibagi menjadi banyak bagian, model interaksi akhir seperti ColBERT menghasilkan satu vektor per token, dan entitas multimodal dapat memiliki beberapa tampilan.
EmbList menyimpan daftar vektor berpanjang variabel per entitas, dengan DISKANN sebagai indeks di disk. Jalur disk ini membantu mengendalikan penggunaan RAM saat korpus melebihi batas memori. EmbList + DISKANN merupakan varian pertama dari keluarga StructList yang lebih luas dalam rilis kandidat (RC) ini. Sisa keluarga ini, termasuk penyaringan StructList dan akselerasi multi-vektor Muvera / Lemur, ditargetkan untuk rilis resmi versi 3.0.
Untuk informasi lebih lanjut, lihat Pencarian dengan Daftar Embedding.
Paksakan Penggabungan
Beban kerja produksi menumpuk fragmentasi segmen seiring waktu, yang menyebabkan fluktuasi latensi kueri dan penggunaan penyimpanan yang membengkak.
Milvus 3.0 menambahkan kemampuan untuk memicu pemadatan segmen secara eksplisit selama jendela di luar jam sibuk, baik dalam mode sinkron maupun asinkron.
Untuk informasi lebih lanjut, lihat Pemadatan Force Merge.
Penyimpanan V3
Milvus 3.0 memperkenalkan Storage V3, mesin penyimpanan kolom berbasis manifest di mana data dan metadata disimpan di penyimpanan objek yang kompatibel dengan S3. Setiap versi dataset direkam sebagai snapshot manifest yang tidak dapat diubah, yaitu berkas yang dienkode Avro yang mencatat kelompok kolom, log delta, dan statistik yang membentuk dataset tersebut.
Manifest adalah berkas Avro yang ringkas, sedangkan log delta mencatat penghapusan pada tingkat entitas tanpa perlu menulis ulang berkas data. Hal ini menjaga beban metadata tetap rendah seiring pertumbuhan dataset. Manifest juga memisahkan pelacakan metadata dari jalur kueri, sehingga sebuah Koleksi dapat mengelola lebih banyak segmen tanpa mengorbankan kinerja kueri.
Karena status disimpan di penyimpanan objek, kumpulan data bersifat deskriptif sendiri: pembaca mana pun yang memiliki akses ke jalur penyimpanan dapat menemukannya dan menafsirkannya tanpa katalog pusat. Sifat ini menjadi dasar bagi External Collection, Snapshot, dan integrasi lake di masa mendatang.