Pengoptimuman Carian Bertapis
Optimumkan pertanyaan pgvector yang menggabungkan keserupaan vektor dengan penapis metadata menggunakan strategi pengindeksan separa dan komposit.
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.
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
- Pengindeksan IVFFlat untuk Kelajuan
- Pengindeksan HNSW untuk Ingat Kembali
- Penalaan Prestasi Pertanyaan
- Pengoptimuman Carian Bertapis