🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Panduan Pengguna
  • Home
  • Docs
  • Panduan Pengguna

  • Cari & Beri Peringkat Ulang

  • Penyaringan

  • Penyaringan Templating

Templating Filter

Dalam Milvus, ekspresi filter yang kompleks dengan banyak elemen, terutama yang melibatkan karakter non-ASCII seperti karakter CJK, dapat secara signifikan mempengaruhi kinerja kueri. Untuk mengatasi hal ini, Milvus memperkenalkan mekanisme templating ekspresi filter yang dirancang untuk meningkatkan efisiensi dengan mengurangi waktu yang dihabiskan untuk mengurai ekspresi kompleks. Halaman ini menjelaskan penggunaan templating ekspresi filter dalam operasi pencarian, kueri, dan hapus.

Ikhtisar

Templat ekspresi filter memungkinkan Anda membuat ekspresi filter dengan penampung, yang dapat diganti secara dinamis dengan nilai selama eksekusi kueri. Dengan menggunakan templating, Anda dapat menghindari penyematan larik besar atau ekspresi kompleks secara langsung ke dalam filter, sehingga mengurangi waktu penguraian dan meningkatkan kinerja kueri.

Katakanlah Anda memiliki ekspresi filter yang melibatkan dua bidang, age dan city, dan Anda ingin menemukan semua orang yang usianya lebih besar dari 25 tahun dan tinggal di "北京" (Beijing) atau "上海" (Shanghai). Alih-alih secara langsung menyematkan nilai dalam ekspresi filter, Anda dapat menggunakan templat.

filter = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}

Di sini, {age} dan {city} adalah placeholder yang akan diganti dengan nilai aktual di filter_params ketika kueri dijalankan.

Menggunakan templating ekspresi filter di Milvus memiliki beberapa keuntungan utama.

  • Mengurangi Waktu Penguraian: Dengan mengganti ekspresi filter yang besar atau kompleks dengan placeholder, sistem menghabiskan lebih sedikit waktu untuk mengurai dan memproses filter.

  • Peningkatan Kinerja Kueri: Dengan berkurangnya waktu penguraian, performa kueri meningkat, sehingga menghasilkan QPS yang lebih tinggi dan waktu respons yang lebih cepat.

  • Skalabilitas: Seiring bertambahnya set data Anda dan ekspresi filter menjadi lebih kompleks, templating memastikan kinerja tetap efisien dan dapat diskalakan.

Operasi Pencarian

Untuk operasi pencarian di Milvus, ekspresi filter digunakan untuk mendefinisikan kondisi pemfilteran, dan parameter filter_params digunakan untuk menentukan nilai untuk penampung. Kamus filter_params berisi nilai-nilai dinamis yang akan digunakan Milvus untuk menggantikan ekspresi penyaringan.

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.search(
    "hello_milvus",
    vectors[:nq],
    filter=expr,
    limit=10,
    output_fields=["age", "city"],
    search_params={"metric_type": "COSINE", "params": {"search_list": 100}},
    filter_params=filter_params,
)

Dalam contoh ini, Milvus akan secara dinamis mengganti {age} dengan 25 dan {city} dengan ["北京", "上海"] ketika menjalankan pencarian.

Operasi Kueri

Mekanisme templating yang sama dapat diterapkan pada operasi kueri di Milvus. Pada fungsi query, Anda mendefinisikan ekspresi filter dan menggunakan filter_params untuk menentukan nilai yang akan diganti.

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.query(
    "hello_milvus",
    filter=expr,
    output_fields=["age", "city"],
    filter_params=filter_params
)

Dengan menggunakan filter_params, Milvus secara efisien menangani penyisipan nilai secara dinamis, sehingga meningkatkan kecepatan eksekusi kueri.

Operasi Penghapusan

Anda juga dapat menggunakan templating ekspresi filter dalam operasi penghapusan. Mirip dengan pencarian dan kueri, ekspresi filter mendefinisikan kondisi, dan filter_params menyediakan nilai dinamis untuk placeholder.

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.delete(
    "hello_milvus",
    filter=expr,
    filter_params=filter_params
)

Pendekatan ini meningkatkan kinerja operasi penghapusan, terutama saat menangani kondisi filter yang kompleks.

Kesimpulan

Templating ekspresi filter adalah alat yang penting untuk mengoptimalkan kinerja kueri di Milvus. Dengan menggunakan placeholder dan kamus filter_params, Anda dapat secara signifikan mengurangi waktu yang dihabiskan untuk mem-parsing ekspresi filter yang kompleks. Hal ini akan menghasilkan eksekusi kueri yang lebih cepat dan kinerja yang lebih baik secara keseluruhan.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?