pg_vectorsearch هو امتداد لـ PostgreSQL مخصص للبحث التقريبي عن أقرب الجيران (ANN) عالي الأداء، وقد شورك على GitHub وناقشه مجتمع Hacker News. وهو حاليًا في مرحلة ألفا ومخصص للاختبار لا للإنتاج. قد لا يكون الترقية بين الإصدارات الأولية ممكنة، لذا ينبغي للمستخدمين التخطيط لحذف الامتداد وفهارسه وإعادة إنشائها. يسرد سجل التغييرات المشكلات المعروفة.
فهرس PRISM الخاص بالامتداد (Partitioned Routing Index for Similarity Matching) هو طريقة وصول إلى الفهارس تشبه من حيث المفهوم IVFFlat في pgvector، لكنه مبني على تكميم RaBitQ والتوجيه الهرمي والتقسيم. وهو مُنفَّذ بلغة C ويدعم حساب المسافات باستخدام SIMD (AVX2 وAVX512 وNEON)، والإدراج والتحديث والحذف الديناميكي، وإعادة موازنة قوائم الإدخال عبر prism_rebalance. يذكر المشروع أن PRISM أسرع بشكل ملحوظ من IVFFlat وHNSW في pgvector سواء في الاستعلام أو بناء الفهرس، وأنه على مجموعة بيانات من 100 مليون متجه يتفوق على HNSW بالاسترجاع نفسه على مثيل يملك ربع الذاكرة.
يستخدم PRISM شجرة مراكز هرمية لتقسيم المتجهات إلى مجموعات، ويعتمد على ذاكرة التخزين المؤقت للمخزن المؤقت في PostgreSQL للإبقاء على هذه الشجرة جاهزة. تُكمَّم المتجهات باستخدام RaBitQ وتُخزَّن في قوائم الإدخال. وتتيح حدود الخطأ الخاصة به للبحث استبعاد المتجهات التي لا يمكن أن تكون أقرب الجيران، مما يقلل عدد عمليات إعادة الترتيب الكاملة الدقة اللازمة.
يمكن للمستخدمين تخزين المتجهات في أعمدة vec32 أو vec16 الأصلية، أو بناء فهرس PRISM مباشرة على أعمدة vector أو halfvec الموجودة في pgvector دون تغيير جداولهم أو استعلاماتهم. يستخدم المساران المعاملات نفسها وإعدادات الضبط نفسها، مثل prism.nprobe للموازنة بين الاسترجاع والسرعة.
المصدر: Hacker News · لخّصه HeadlinesBriefing