Pangkalan Data Vektor: Pinecone, Weaviate & pgvector · Pelajaran

Pengoptimuman Carian Bertapis

Optimumkan pertanyaan pgvector yang menggabungkan keserupaan vektor dengan penapis metadata menggunakan strategi pengindeksan separa dan komposit.

Pelajaran 4 daripada 413 langkah

Pengoptimuman Carian Bertapis ialah pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.

Masalah Carian Bertapis

Pertanyaan sebenar sering menggabungkan carian vektor dengan penapis metadata WHERE. Gabungan naif boleh menghalang penggunaan indeks vektor dan menjadi perlahan.

SELECT id FROM docs
WHERE category = 'news'
ORDER BY embedding <=> '[...]'::vector
LIMIT 10;

Sebab Penapis Mengurangkan Ingatan Semula

Indeks ANN mengembalikan jiran terdekat anggaran sebelum penapis digunakan. Jika kebanyakan calon ditapis keluar, anda mungkin mendapat kurang daripada hasil LIMIT — ini ialah penapisan berlebihan.

Meningkatkan Skop Carian

Tingkatkan hnsw.ef_search (atau prob IVFFlat) supaya indeks mengimbas lebih banyak calon sebelum penapisan, sekali gus meningkatkan ingatan semula bagi penapis terpilih.

SET hnsw.ef_search = 100;

Indeks Separa

Bagi nilai penapis yang lazim dan mempunyai kardinaliti rendah, bina indeks separa yang hanya meliputi baris tersebut. Indeks itu kemudiannya sepadan sepenuhnya dengan subset yang ditapis.

CREATE INDEX ON docs
USING hnsw (embedding vector_cosine_ops)
WHERE category = 'news';

Masa Indeks Separa Lebih Berkesan

Indeks separa sangat berkesan apabila:

  • Nilai penapis sedikit dan diketahui
  • Setiap subset cukup besar untuk memberikan kesan
  • Pertanyaan hampir sentiasa menyertakan penapis tersebut

Indeks Sokongan B-tree

Bagi penapis berkardinaliti tinggi, tambahkan indeks B-tree biasa pada lajur metadata. Perancang boleh menggabungkannya dengan imbasan vektor.

CREATE INDEX ON docs (category);
CREATE INDEX ON docs (published_at);

Imbasan Indeks Berlelaran

pgvector versi baharu menyokong imbasan berlelaran, yang terus mengambil data daripada indeks sehingga baris yang mencukupi melepasi penapis. Dayakannya untuk mengelakkan hasil yang tidak mencukupi.

SET hnsw.iterative_scan = 'relaxed_order';

Prapenapisan berbanding Pascapenapisan

Prapenapis: kecilkan set baris dahulu, kemudian lakukan carian vektor (baik untuk penapis yang sangat terpilih). Pascapenapis: lakukan carian vektor dahulu, kemudian tapis hasilnya (baik untuk penapis yang luas). Uji kedua-duanya.

Mengukur dengan EXPLAIN

Sentiasa sahkan pelan tersebut. Cari Index Scan using ... hnsw, bukannya imbasan berjujukan.

EXPLAIN ANALYZE
SELECT id FROM docs
WHERE category = 'news'
ORDER BY embedding <=> '[...]'::vector
LIMIT 10;

Menggabungkan Strategi

Persediaan yang kukuh sering menggunakan indeks separa untuk penapis yang kerap digunakan, indeks B-tree untuk penapis lain, serta ef_search yang ditala dengan imbasan berlelaran sebagai langkah keselamatan.

Senarai Semak

Sebelum melancarkan pertanyaan vektor bertapis:

  • Sahkan penggunaan indeks dengan EXPLAIN
  • Pastikan anda memperoleh hasil LIMIT secara konsisten
  • Ukur kependaman pada p95

Semakan Pantas

Uji pengetahuan anda tentang carian bertapis.

Ringkasan

Anda telah mempelajari sebab penapis mencabar indeks ANN dan cara indeks separa, indeks sokongan B-tree, penalaan ef_search serta imbasan berlelaran memastikan pertanyaan vektor bertapis kekal pantas dan tepat.

Percuma untuk bermula

Pelajari Pangkalan Data Vektor: Pinecone, Weaviate & pgvector dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
12
Pelajaran
48

Soalan Lazim

Adakah pelajaran “Pengoptimuman Carian Bertapis” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector, termasuk “Pengoptimuman Carian Bertapis”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pangkalan Data Vektor: Pinecone, Weaviate & pgvector merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengoptimuman Carian Bertapis”?

Optimumkan pertanyaan pgvector yang menggabungkan keserupaan vektor dengan penapis metadata menggunakan strategi pengindeksan separa dan komposit. Anda berlatih Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pangkalan Data Vektor: Pinecone, Weaviate & pgvector?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Pengoptimuman Carian Bertapis” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector ini?

Ya. Setiap pelajaran Pangkalan Data Vektor: Pinecone, Weaviate & pgvector menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengindeksan IVFFlat untuk Kelajuan
  2. Pengindeksan HNSW untuk Ingat Kembali
  3. Penalaan Prestasi Pertanyaan
  4. Pengoptimuman Carian Bertapis
← Kembali ke Pangkalan Data Vektor: Pinecone, Weaviate & pgvector