بقلم Ming Ying في 1 أكتوبر 2026 قبل أسبوعين، كشفت Planet Scale عن TIN، وهو امتداد بحث نص كامل لـ Postgres. أبلغ منشور إطلاقهم عن مكاسب أداء مثيرة للإعجاب على مجموعة فرعية من وظائف بحث النص في Parade DB، وتحديداً بحث النص المرتب BM25 وعدد المستندات. نود أن نوجه التحية لفريق Planet Scale. من الرائع رؤية منصة Postgres أخرى تستثمر في البحث، ومن الواضح أن الكثير من الهندسة المدروسة قد دخلت في TIN.
لنكن واضحين جداً بشأن شيء واحد: TIN سريع (أسرع على الأقل 8x من Parade DB 0.25 في كل معيار Planet Scale). سريع جداً لدرجة أن الرد الوحيد المنطقي كان التزام الصمت وارتداء قبعات تحسين الأداء. بعد أسبوعين، ها هي النتائج قبل وبعد المرتبة BM25، باستخدام نفس مجموعة بيانات المعيار Stack Exchange، ونفس الأدوات، وأنواع الآلات.
المثير للاهتمام ليس أننا أغلقنا الفجوة بسرعة، ولكن كيف أغلقناها. يدعي منشور TIN أن أداءهم يرجع إلى اختلاف معماري أساسي يستخدم حقول ctid الداخلية لـ Postgres كمعرفات للمستندات. ومع ذلك، أغلقنا هذه الفجوة من خلال بعض تمريرات التحسين التي لا علاقة لها بكيفية تحديد المستندات.
قلب أي فهرس بحث نصي هو قائمة الترحيلات. Tantivy، مكتبة البحث وراء Parade DB، تستخدم معرفات مستند u32 متسلسلة لترحيلاتها. يحدد Postgres صفوفه بقيم ctid. جوهر منشور TIN هو أن استخدام قيم ctid مباشرة كمعرفات للمستندات يلغي هذه الخريطة ويمكّن من عمليات bitmap فعالة وفحوصات الرؤية. بالنسبة لاستعلامات BM25 Top K، كنا متشككين.
المصدر: Hacker News · لخّصه HeadlinesBriefing