PostgreSQL में एक हाइब्रिड search engine का निर्माण करें जो वेक्टर पुनर्प्राप्ति के साथ BM25 प्रासंगिकता रैंकिंग को जोड़ती है
PostgreSQL हाइब्रिड सर्च एक डेटाबेस में लेक्सिकल रैंकिंग और पीजीवेक्टर embeddings को जोड़ती है, जो Wikipedia डेटा, रैंक फ्यूजन और फास्टएपीआई का उपयोग करती है।
मुख्य जानकारी
- यह कोर्स दिखाता है कि कैसे एक उत्पादन-ग्रेड PostgreSQL हाइब्रिड खोज प्रणाली का निर्माण किया जाए जो BM25 कीवर्ड रैंकिंग को pgvector सिमेंटिक रिकवरी के साथ एक डेटाबेस में जोड़ती है।
- यह दो खोज आवश्यकताओं को संबोधित करता है: सटीक प्रश्नों के लिए सटीक कीवर्ड मिलान और वैकल्पिक सवालों के लिए वेक्टर खोज, फिर SQL में Reciprocal Rank Fusion का उपयोग करके परिणामों को मिलाता है।
- यह ट्यूटोरियल pg_textsearch,pgvector, pgvectorscale, Python , FastAPI और Psycopg का उपयोग करके 240,000 Simple English Wikipedia लेखों पर एक पूर्ण-स्टैक एप्लिकेशन बनाता है।
- यह दृष्टिकोण खोज सूचकांक अद्यतनों के लिए एसीआईडी गारंटी को संरक्षित करते हुए एक अलग खोज क्लस्टर से बचने द्वारा परिचालन जटिलता को कम करने में मदद करता है।
- यह उन डेवलपर्स के लिए सबसे उपयुक्त है जिन्हें PostgreSQL के भीतर सटीक वाक्यांश लुकअप और सिमेंटिक मिलान दोनों की आवश्यकता होती है।
मेटा विवरणः सीखें कि कैसे एक freeCodeCamp पाठ्यक्रम Wikipedia डेटा, सर्वश्रेष्ठ मिलान 25, पीजीवेक्टर और रैंक फ्यूजन का उपयोग करके PostgreSQL के अंदर हाइब्रिड कीवर्ड और वेक्टर खोज बनाता है।
टैगः PostgreSQL , हाइब्रिड खोज, पीजी वेक्टर, freeCodeCamp, पूर्ण स्टैक विकास
विशेष रुप से प्रदर्शित छवि: (अंग्रेज़ी में) ">"</string> एक डेटाबेस सिलेंडर, एक आवर्धक कांच और कनेक्टेड वेक्टर बिंदुओं के अमूर्त अनुकूल चित्रण, कोई वास्तविक लोग नहीं हैं, कोई लोगो नहीं है, कोई पाठ नहीं है।
freeCodeCamp.org YouTube चैनल पर एक नया वीडियो कोर्स डेवलपर्स को दिखाता है कि कैसे एक डेटाबेस के भीतर उत्पादन-ग्रेड PostgreSQL हाइब्रिड खोज पाइपलाइन चलाने के लिए। यह सामग्री उन बिल्डरों के लिए उपयोगी है जिन्हें अलग से इलास्टिक सर्च क्लस्टर जोड़ने के बिना सटीक कीवर्ड मिलान और वैचारिक वेक्टर खोज दोनों की आवश्यकता होती है, जबकि खोज सूचकांक अपडेट के लिए एसीआईडी गारंटी रखते हुए।
क्यों टीम अक्सर खोज और डेटा को विभाजित करती है
कई एप्लिकेशन खोज सेटअप एक ट्रेड-ऑफ को मजबूर करते हैं। पहला विकल्प सरल टेक्स्ट फ़िल्टर है, जो संचालित करना आसान है लेकिन सीमित होता है जब उपयोगकर्ता सटीक शब्दों के बजाय विचारों के रूप में प्रश्नों का वाक्यांश देते हैं। दूसरा विकल्प Elasticsearch जैसे अलग खोज क्लस्टर है। यह मजबूत पुनर्प्राप्ति प्रदान कर सकता है, लेकिन यह अनुप्रयोग डेटाबेस के साथ सिंक्रनाइज़ेशन रखने के लिए एक दूसरी प्रणाली भी बनाता है। तुल्यकालन पाइपलाइन परिचालन कार्य और विफलता मोड जोड़ते हैं।
एकल PostgreSQL डेटाबेस में घने वेक्टर embeddings के साथ शाब्दिक कीवर्ड मिलान को जोड़कर, पाठ्यक्रम खोज सूचकांक के लिए एसीआईडी गारंटी बनाए रखते हुए बाहरी निर्भरताओं को हटा देता है। व्यावहारिक रूप से, दस्तावेज़, इसकी खोज योग्य पाठ सुविधाओं और इसके वेक्टर प्रतिनिधित्व को एक लेनदेन प्रणाली के रूप में प्रबंधित किया जा सकता है।
हाइब्रिड खोज क्या हल करती है
खोज क्वेरी आमतौर पर दो पुनर्प्राप्ति व्यवहारों की मांग करते हैं। अपोलो 13 जैसे सटीक प्रश्नों के लिए सटीक कीवर्ड मिलान की आवश्यकता होती है, जिसे लेक्सिकल इंजन अच्छी तरह से संभालते हैं। वैचारिक प्रश्न जैसे कि जानवर जो अपने स्वयं के प्रकाश का नाम दिए बिना एक विचार का वर्णन करते हैं; सिमेंटिक वेक्टर खोज वहां बेहतर है। हाइब्रिड खोज दोनों रणनीतियों को एक ही समय में चलाती है और SQL में Reciprocal Rank Fusion (RRF) का उपयोग करती है ताकि दो रैंक किए गए परिणाम सूचियों को एक आदेशित प्रतिक्रिया में मिलाया जा सके।
पाठ्यक्रम क्या बनाता है
ट्यूटोरियल 240,000 Simple English Wikipedia लेखों पर एक पूर्ण पूर्ण-स्टैक खोज एप्लिकेशन बनाता है। यह कॉर्पस-जागरूक सर्वश्रेष्ठ मिलान 25 या बीएम25 रैंकिंग के लिए pg_textsearch एक्सटेंशन की स्थापना को कवर करता है. यह 384-आयामी वाक्य embeddings को पीजीवेक्टर और पीजी वेक्टर्सस्केल के साथ संग्रहीत करता है। इसमें EXPLAIN (ANALYZE, BUFFERS) के साथ क्वेरी योजनाएं भी हैं। बैकएंड Python , FastAPI और Psycopg का उपयोग करके टुकड़ों को एक साथ बांधता है, जिसमें मैच हाइलाइटिंग और एकल-लेनदेन दस्तावेज़ लिखता है।
पाठक क्या ले जा सकते हैं
यह कोर्स freeCodeCamp.org YouTube चैनल पर 1 घंटे की घड़ी के रूप में उपलब्ध है। यह पाठकों को खोज अवसंरचना को समेकित करने के लिए एक व्यावहारिक पैटर्न देता हैः शाब्दिक रैंकिंग और वेक्टर पुनर्प्राप्ति एक ही डेटाबेस के अंदर रह सकते हैं, और SQL रैंकिग, लेनदेन और ट्यूनिंग के लिए नियंत्रण बिंदु बना सकता है। पाठकों के लिए मुख्य अनुवर्ती प्रश्न यह है कि क्या उनके कार्यभार को समर्पित खोज क्लस्टर की आवश्यकता है या क्या PostgreSQL स्वीकार्य प्रदर्शन पर दोनों कर्तव्यों को अवशोषित कर सकता है.
किसे इसका उपयोग करना चाहिए और किसको इसे छोड़ना चाहिए
किसको इसका उपयोग करना चाहिए: डेवलपर्स एक खोज सुविधा का निर्माण करते हैं जिसे सटीक वाक्यांश लुकअप और सिमेंटिक मिलान की आवश्यकता होती है, ऑपरेशनल जटिलता को कम करने वाली टीमें, और कोई भी जो सीख रहा है कि PostgreSQL एक्सटेंशन हाइब्रिड रैंकिंग कैसे संभालते हैं। इसे कौन छोड़ना चाहिएः पाठकों जिन्हें केवल सरल टेक्स्ट फ़िल्टर की आवश्यकता है, या टीम पहले से ही अलग इलास्टिक सर्च आर्किटेक्चर के लिए प्रतिबद्ध हैं और PostgreSQL में खोज को समेकित नहीं करना चाहते हैं।

Comments (0)