HeadlinesBriefing favicon HeadlinesBriefing.com

TIN: امتداد بحث نصي كامل لـ Postgres إصدار GA

Hacker News •
×

إحدى ميزات Postgres التي يطلبها عملاؤنا أكثر من غيرها هي البحث الكامل في النصوص. اليوم، يسعدنا الإعلان عن TIN: امتداد بحث كامل للنصوص لـ Postgres سريع، غني بالميزات، وموثوق. TIN يرمز إلى "Text INdex"، وهذا ما يفعله. TIN متاح فوراً كإصدار GA لجميع قواعد بيانات Postgres و Neki. جربه: CREATE INDEX an_index_name ON table_name USING tin(text_column_name); SELECT * FROM table_name WHERE text_column_name ==> 'some words'. بنينا TIN لأننا نؤمن أن فهرس نص جيد يجب أن يدعم: التعبيرات المنطقية، استعلامات العبارات، واستعلامات النطاق. المطابقة التقريبية، والبدلية، والتعبيرات العادية للمصطلحات. طي الحالة واللهجات. استعلامات COUNT(*) واستعلامات top-k المسجلة بـ BM25. يجب أن يدعم فهرس نص جيد في Postgres كل تلك المتطلبات مع التعامل أيضاً مع عمليات الانضمام، بنود WHERE المعقدة عبر البحث الكامل وأنواع الأعمدة الأخرى، التحديثات المستمرة، النسخ المتماثل، النسخ الاحتياطية، ورؤية المعاملات الصحيحة. على الرغم من وجود ثلاثة فهارس بحث نصي على الأقل لـ Postgres بالفعل، إلا أن أيا منها لم يلبي جميع تلك المتطلبات.

TIN يفعل ذلك. TIN أيضاً سريع حقاً، بشكل مذهل. أجرينا اختبارات معيارية لتقييم الأداء لجميع حالات الاستخدام المذكورة أعلاه والمزيد. جربنا أعباء عمل مع الاستعلابات الاقترانية، والفصلية، والعبارات، ومزيج من الثلاثة. التي تحسب المستندات أو التي تطلب الأعلى k حسب درجة BM25. مع وبدون عملاء يكتبون بيانات جديدة للفهرس بشكل متزامن مع عبء عمل استعلامات الاختبار. قسنا TIN مقابل مجموعة متنوعة من مجموعات النصوص النصية: كل ويكيبيديا، مجموعة من تعليقات Reddit بإجمالي 2.3 TB، وحمل عمل مختلط نسميه ببساطة "pile" مع 797 GB من أوراق بحثية مفتوحة الوصول، وثائق قانونية، كتب ملكية عامة، ورسائل Enron الإلكترونية. نتائج الاختبار المعياري التي نشاركها في هذه المقالة هي من تصدير أسئلة وأجوبة من Stack Exchange: مجموعة نصوص بحجم 85 GB مع 150 مليون مستند.