Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

एक ऐसी दुनिया में रहना जहां अधिकांश लोग अपने स्मार्टफोन के बिना घर छोड़ने के लिए संघर्ष करते हैं, इसका मतलब है कि Google हमसे कभी दूर नहीं है। एक पल में, हम Google के सर्च इंजन पर एक खोज क्वेरी के माध्यम से लगभग किसी भी प्रश्न का उत्तर पा सकते हैं।

सर्च इंजन (और अनंत जानकारी तक उनकी पहुंच) रोजमर्रा की जिंदगी में एकीकृत हो गए हैं, जिससे हम में से कई लोग उन पर अविश्वसनीय रूप से निर्भर हो गए हैं। और एक को इष्टतम होने के लिए, क्वेरी के उत्तर तुरंत प्राप्त करने की आवश्यकता होती है क्योंकि Google और अन्य टेक दिग्गजों द्वारा निर्धारित उच्च मानकों के कारण।

कोई भी लैग, देरी, या खिंचाव उपयोगकर्ता के अनुभव को बाधित करेगा, यही कारण है कि इस लॉन्चपैड ऐप, Alexis, ने इस बाधा को दूर करने के लिए Redis को मुख्य डेटाबेस के रूप में उपयोग किया है।

इस एप्लिकेशन के संस्थापक, Bobby Donchev, ने RedisAI और RediSearch की शक्ति का उपयोग एक कॉर्पस से जानकारी को क्वेरी के जवाब में अधिकतम दक्षता के साथ पुनर्प्राप्त करने के लिए किया है। उपयोगकर्ता PDF को इंडेक्स करने और अपने दस्तावेजों से जानकारी निकालने के लिए एक साधारण UI का उपयोग करने में सक्षम हैं।

Redis के बिना, पूरी खोज प्रक्रिया सुस्त होगी, जिससे Alexis की कार्यक्षमता बाधित होगी। आइए देखें कि Bobby ने इस एप्लिकेशन को कैसे बनाया।

हालांकि, आगे बढ़ने से पहले, हम यह उजागर करना चाहेंगे कि हमारे पास Redis लॉन्चपैड पर आपके लिए जांचने के लिए एक शानदार श्रृंखला के एप्लिकेशन भी हैं। इसलिए इसे देखना सुनिश्चित करें!

  1. आप क्या बनाएंगे?
  2. आपको क्या चाहिए?
  3. आर्किटेक्चर
  4. शुरू करना
  5. डेटा कैसे संग्रहीत किया जाता है
  6. डेटा कैसे एक्सेस किया जाता है
  7. यह कैसे काम करता है

1. आप क्या बनाएंगे?

आप एक कुशल टेक्स्ट रैंकर बनाएंगे जो अधिकतम गति से खोज क्वेरी को पुनर्प्राप्त करने में सक्षम है। उपयोगकर्ता इस एप्लिकेशन का उपयोग महत्वपूर्ण PDF को इंडेक्स करने और उनके दस्तावेजों से आसानी से उत्तर निकालने के लिए कर सकेंगे।

हम प्रत्येक चरण को कालानुक्रमिक क्रम में देखेंगे और इस एप्लिकेशन को जीवंत करने के लिए आवश्यक घटकों को उजागर करेंगे।

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

2. आपको क्या चाहिए?

  • RediSearch: इंडेक्सिंग, क्वेरीिंग और फुल-टेक्स्ट सर्च इंजन
  • RedisAI: डेटा प्रबंधित करने और लेटेंसी कम करने के लिए डीप लर्निंग/मशीन लर्निंग मॉडल निष्पादित करता है
  • Redis Streams: डेटा खपत प्रबंधित करता है
  • NodeJS: एक ओपन-सोर्स, क्रॉस-प्लेटफॉर्म के रूप में उपयोग किया जाता है जो वेब ब्राउज़र के बाहर JavaScript कोड निष्पादित करता है
  • RedisJSON: ECMA-404 द JSON डेटा इंटरचेंज मानक को एक नेटिव डेटा प्रकार के रूप में लागू करता है।

3. आर्किटेक्चर

खोजकर्ता की क्वेरी का उत्तर प्रदान करना दो चरणों में होता है:

  1. सबसे पहले, आप उस टेक्स्ट का चयन करते हैं जिसमें उत्तर होने की संभावना है। आपको इस चरण के लिए BM25 रैंकिंग फ़ंक्शन के साथ RediSearch का उपयोग करना होगा।
  2. आप RedisAI में लोड किए गए एक ट्रांसफॉर्मर AI मॉडल का उपयोग टेक्स्ट में उत्तर अवधि की पहचान करने के लिए कर सकते हैं।

पहले चरण में RediSearch का उपयोग करके, आप खोज स्थान को काफी कम कर देंगे। यह ऐप के समग्र अनुभव को तेज़ बना देगा। इसके बाद, आपको बैकएंड में टाइपस्क्रिप्ट के साथ NodeJS और फ्रंटएंड में टाइपस्क्रिप्ट के साथ React का उपयोग करना होगा।

RedisAI और RediSearch का उपयोग करने के अलावा, आप अपने यूज़र मॉडल के लिए RedisJSON के साथ-साथ Redis Streams के साथ लागू एक असिंक्रोनस वर्कर का लाभ उठाएंगे।

वेबसर्वर को एक्सप्रेस फ्रेमवर्क के साथ एक्सपोज़ किया गया है जिसमें निम्नलिखित एंडपॉइंट्स हैं:

एक बार जब आप रजिस्टर करते हैं और ऐप में लॉग इन करते हैं, तो आप इंडेक्स्ड लाइब्रेरी में दस्तावेज़ जोड़ना शुरू कर सकेंगे। जब एक PDF अपलोड किया जाता है, तो एक इवेंट Redis Streams में लिखा जाएगा। बाद में, कंज्यूमर ग्रुप से कोई व्यक्ति async प्रोसेसिंग के लिए इवेंट को पिक करेगा।

फिर आप PDF को प्रोसेस कर सकते हैं, कुछ सफाई लागू कर सकते हैं और PDF को Redis हैश में स्टोर कर सकते हैं जिसे RediSearch के साथ इंडेक्स किया गया है। अब आप सर्वर को नेचुरल क्वेरी भेज सकेंगे और 'kubernetes deployments,' 'DDD root aggregate' आदि जैसे बुनियादी कीवर्ड खोजों तक सीमित नहीं रहेंगे।

इसके बजाय, आप अधिक प्रासंगिक खोजों को क्वेरी कर सकेंगे।

फ्लोचार्ट

नीचे Alexis के कार्य करने का एक सामान्य अवलोकन दिया गया है।

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

अब आइए देखें कि फ्लोचार्ट के PDF अपलोड करें और PDF सामग्री इंडेक्स करें और क्वेरी का उत्तर दें भाग कैसे काम करते हैं।

क्वेरी का उत्तर दें

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड
  • उपयोगकर्ता UI पर एक क्वेरी दर्ज करता है जिसे तब RediSearch पर भेजा जाता है
  • कीवर्ड का उपयोग करके सबसे सार्थक सामग्री खोजने के लिए RediSearch और BM25 फ़ंक्शन दोनों सक्रिय हो जाते हैं।
  • यह सामग्री तब क्वेरी के साथ RedisAI को प्रेषित की जाती है ताकि यह तुलना कर सके और तय कर सके कि उपयोगकर्ता की क्वेरी के लिए कौन सा उत्तर सबसे अधिक प्रासंगिक है।

PDF अपलोड करें और PDF सामग्री इंडेक्स करें

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड
  • एक उपयोगकर्ता सर्च इंजन में एक प्रश्न टाइप करता है।
  • RediSearch PDF(s) को इंडेक्स करता है और इस क्वेरी का उत्तर खोजता है।
  • RedisAI एक इन्फेरेंस चलाता है और कई संभावित उत्तर निकालता है।
  • RedisAI तब प्रत्येक उत्तर की तुलना करता है और तय करता है कि क्वेरी के लिए कौन सा सबसे अधिक प्रासंगिक है।
  • उत्तर अंततः उपयोगकर्ता को प्रदर्शित किया जाता है।

4. शुरू करना

चरण 1: पूर्वापेक्षाएँ स्थापित करें

  • Node - v12.x.x
  • NPM - v6.x.x
  • Docker और Docker-compose

चरण 2. रिपॉजिटरी क्लोन करें

चरण 3: निर्भरताएँ स्थापित करें

alexis निर्देशिका में बदलें और नीचे दी गई कमांड चलाएं:

npm install

चरण 4. फ्रंटएंड और बैकएंड सेट करना

नीचे दी गई कमांड सर्वर और क्लाइंट ऐप को बूटस्ट्रैप करेगी और Redis सर्वर के साथ-साथ RedisInsight GUI को भी आरंभ करेगी:

npm run bootstrap

चरण 5. एप्लिकेशन शुरू करें

npm start

चरण 6. एप्लिकेशन एक्सेस करना

एप्लिकेशन तक पहुंचने के लिए https://localhost:3000 खोलें

चरण 7. RedisInsight एक्सेस करना

RedisInsight एक विज़ुअल टूल है जो आपको अपने Redis डेटाबेस के साथ GUI- और CLI-आधारित दोनों इंटरैक्शन करने देता है, और जब आप अपने Redis-आधारित एप्लिकेशन को विकसित कर रहे हों तो और भी बहुत कुछ। यह एक फुल-फीचर्ड प्योर डेस्कटॉप GUI क्लाइंट है जो आपके Redis एप्लिकेशन को डिज़ाइन, विकसित और अनुकूलित करने की क्षमताएं प्रदान करता है। RedisInsight के बारे में अधिक जानने के लिए यहां क्लिक करें

RedisInsight GUI निम्न लिंक के माध्यम से पहुंच योग्य है: https://localhost:8001

5. डेटा कैसे संग्रहीत किया जाता है

चरण 1: उपयोगकर्ता डेटा RedisJSON में संग्रहीत है

चरण 2: नीचे दिए गए कोड के साथ प्रत्येक उपयोगकर्ता के लिए एक RediSearch इंडेक्स बनाया जाता है

चरण 3: एक बार जब उपयोगकर्ता एक PDF अपलोड करता है तो हम RedisJSON के साथ उसके pdfs सरणी को अपडेट करते हैं

चरण 4: फ़ाइल अपलोड एक इवेंट को भी ट्रिगर करती है जिसे ax:stream:pdf-processing स्ट्रीम में लिखा जा रहा है। स्ट्रीम का पेलोड है:

चरण 5: एक कंज्यूमर ग्रुप के भीतर एक कंज्यूमर स्ट्रीम से इवेंट को पिक करता है और फ़ाइल को प्रोसेस करता है, सामग्री को हैश में भी लिखता है।

6. डेटा कैसे एक्सेस किया जाता है

इस एप्लिकेशन में, प्रत्येक उपयोगकर्ता के लिए एक RediSearch इंडेक्स है जो उपरोक्त हैश को इंडेक्स करता है। यह उपयोगकर्ता की क्वेरी से प्रासंगिक सामग्री से मेल खाने के लिए लुकअप क्षमताएं प्रदान करता है। सामग्री का विश्लेषण नीचे दिए गए कोड के साथ किया जाता है:

RediSearch द्वारा पुनर्प्राप्त की गई सामग्री को तब विश्लेषण के लिए RedisAI को प्रेषित किया जाता है।

7. यह कैसे काम करता है

एक अकाउंट बनाएं

जब आप Alexis ऐप खोलते हैं, तो आपको लॉग इन करने के लिए पोर्टल पर निर्देशित किया जाएगा (नीचे दी गई छवि देखें)। यदि आपके पास पहले से कोई अकाउंट नहीं है, तो आपको नीचे दिए गए हाइपरलिंक से एक नया बनाने का अवसर मिलेगा।

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

एक बार जब आप लॉग इन कर लेते हैं, तो आपको पोर्टल पर एक और पेज पर ले जाया जाएगा। यदि यह पोर्टल पर आपका पहली बार है, तो आपके लाइब्रेरी में कोई दस्तावेज़ नहीं होंगे। अगला कदम उन्हें एप्लिकेशन में आयात करना होगा।

अपनी लाइब्रेरी में दस्तावेज़ आयात करें

इस प्रक्रिया को शुरू करने के लिए, आप या तो स्क्रीन के केंद्र में बॉक्स में दस्तावेज़ों को ड्रैग और ड्रॉप कर सकते हैं या क्लाउड आइकन पर क्लिक करके उन्हें मैन्युअली खींच सकते हैं। Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

एक बार जब आप एक दस्तावेज़ अपलोड कर लेते हैं, तो आपको स्क्रीन के बाईं ओर इसके शीर्षक के प्रदर्शन के माध्यम से इसके भंडारण की पुष्टि प्राप्त होगी (नीचे देखें)।

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

जब ऐसा होता है, तो PDF सर्वर पर अपलोड हो जाता है और पृष्ठभूमि में साफ भी हो जाता है। यह प्रक्रिया Redis की उन्नत क्षमताओं के कारण कुशल है।

अपनी क्वेरी करें

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

जैसा कि आप ऊपर की छवि से देख सकते हैं, आपको बस उस क्वेरी को टाइप करना है जिसे आप एप्लिकेशन से पुनर्प्राप्त करना चाहते हैं। इस उदाहरण में, उपयोगकर्ता ने सीधे पूछा कि फ़ाइल की सामग्री क्या है, 'What is the journey about?' टाइप करके।

जब आप अपनी क्वेरी सबमिट कर देते हैं, तो आपको तुरंत कुछ उत्तर प्रदान किए जाएंगे, प्रत्येक को उनकी प्रासंगिकता के आधार पर पदानुक्रमित रूप से रैंक किया गया है (नीचे उदाहरण देखें)।

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

निष्कर्ष: Redis के साथ खोज को आसान बनाना

जब बात आती है, तो हर कोई खोज क्वेरी को बिना किसी देरी के तत्काल होने की उम्मीद करता है क्या कभी। यह डिजिटल युग है, आखिरकार, और कोई भी लैग केवल उपयोगकर्ताओं को दूर धकेलेगा और किसी ऐसी चीज़ की ओर ले जाएगा जो अधिक इष्टतम है।

Redis का उपयोग करके, Alexis को एक प्रीमियम मानक पर संचालित किया गया था। RediSearch की बदौलत विभिन्न स्थानों पर सबसे सार्थक सामग्री एकत्र करना तेज़ और कुशल था। और RedisAI की हाइपर-उन्नत क्षमताएं इस सामग्री को छानने और उपयोगकर्ताओं को उनकी क्वेरी के लिए सबसे प्रासंगिक और सटीक उत्तर प्रदान करने में सक्षम थीं।

यदि आप खोज करना चाहते हैं कि यह एप्लिकेशन कैसे बनाया गया था तो आपको Bobby का YouTube वीडियो देखना चाहिए। हमारे पास Redis लॉन्चपैड पर आपके लिए प्रेरित होने के लिए विभिन्न प्रकार के एप्लिकेशन भी हैं।

हेलसिंकी में रियल-टाइम बस ट्रैकिंग सिस्टम बनाने से लेकर विकासशील देशों में फसल बीमाकर्ताओं की रक्षा करने तक, दुनिया भर के प्रोग्रामर रोजमर्रा की जिंदगी में बदलाव लाने के लिए Redis के चमत्कारों का उपयोग कर रहे हैं। और आप भी कर सकते हैं!

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

इस एप्लिकेशन को किसने बनाया?

Bobby Donchev

Redis के साथ हाई-परफॉर्मेंस टेक्स्ट रैंकर बनाएं: चरण-दर-चरण गाइड

Bobby एक गतिशील प्रोग्रामिंग इंजीनियर हैं जिन्हें क्लाइंट्स के लिए सिस्टम डिज़ाइन और कार्यान्वयन में बारह वर्षों से अधिक का अनुभव है।

उनके GitHub पेज पर एक नज़र डालना सुनिश्चित करें ताकि आप उन सभी प्रोजेक्ट्स के साथ अपडेट रहें जिनमें वह शामिल रहे हैं।

  1. जावाएफएक्स में टेक्स्ट नोड कैसे बनाएं जावाएफएक्स में टेक्स्ट नोड कैसे बनाएं

    जावाएफएक्स में, टेक्स्ट नोड को javafx.scene.text.Text क्लास द्वारा दर्शाया जाता है। आप इस क्लास को इंस्टेंटिएट करके जावाएफएक्स विंडो में टेक्स्ट जोड़ सकते हैं। टेक्स्ट नोड की बुनियादी प्रॉपर्टीज निम्नलिखित हैं - X - यह प्रॉपर्टी टेक्स्ट के x कोऑर्डिनेट को दर्शाती है। आप setX() मेथड का उपयोग करके इ

  1. जावाएफएक्स का उपयोग करके Polygon कैसे बनाएं जावाएफएक्स का उपयोग करके Polygon कैसे बनाएं

    एक पॉलीगॉन एक बंद आकृति है जो एक ही तल में मौजूद n संख्या की रेखाओं का उपयोग करके बनाई जाती है। जावाएफएक्स में एक पॉलीगॉन को javafx.scene.shape.Polygon क्लास द्वारा दर्शाया जाता है। एक पॉलीगॉन बनाने के लिए आपको - इस क्लास को इंस्टेंटिएट करें। पॉलीगॉन बनाने के लिए लाइन सेगमेंट्स के प्रारंभ और अंत ब

  1. चरण-दर-चरण गाइड: macOS पर टेक्स्ट फ़ाइलें बनाना चरण-दर-चरण गाइड: macOS पर टेक्स्ट फ़ाइलें बनाना

    क्या आपने हाल ही में Windows ऑपरेटिंग सिस्टम से macOS पर स्विच किया है? यदि हां, तो यह गाइड आपके लिए मददगार साबित होगा। ऐसी बहुत सी विशेषताएं हैं जो Mac को अन्य Windows कंप्यूटर से अलग करती हैं। Mac उपयोग करने में आसान और Windows सिस्टम से अधिक स्थिर होते हैं। हालांकि, एक चीज जो पूरी तरह से अलग होत