सॉफ्टवेयर इंजीनियरिंग में हम हर समय इंडेक्स बनाते हैं (उदाहरण के लिए, डेटाबेस में), लेकिन मैंने बहुत से लोगों को उल्टे सूचकांकों के बारे में बात करते सुना है। क्या दोनों के बीच मौलिक रूप से कुछ अलग है? वे एक ही जैसी आवाज करते हैं।
सॉफ्टवेयर इंजीनियरिंग में हम हर समय इंडेक्स बनाते हैं (उदाहरण के लिए, डेटाबेस में), लेकिन मैंने बहुत से लोगों को उल्टे सूचकांकों के बारे में बात करते सुना है। क्या दोनों के बीच मौलिक रूप से कुछ अलग है? वे एक ही जैसी आवाज करते हैं।
जवाबों:
एक आम उपयोग है "... तेजी से पूर्ण-पाठ खोज की अनुमति देने के लिए।"
दो प्रकार दिशात्मकता को दर्शाते हैं । एक आपको सूचकांक के माध्यम से आगे ले जाता है , और दूसरा आपको सूचकांक के माध्यम से पीछे (उलटा) ले जाता है। बस। यहां कोई रहस्य नहीं है। अन्यथा दो प्रकार समान हैं, यह सिर्फ एक सवाल है कि आपके पास क्या जानकारी है , और इसके परिणामस्वरूप आप कौन सी जानकारी खोजने की कोशिश कर रहे हैं।
अपनी जांच को संबोधित करने के लिए, मुझे नहीं लगता कि वास्तव में यह जानने का एक तरीका है कि इसका उपयोग आज क्यों है। एकमात्र कारण यह परिभाषित करना महत्वपूर्ण है कि कौन सा है forward
और कौन सा ऐसा inverted
है ताकि हम सभी उनके बारे में बातचीत कर सकें, और हर कोई जानता है कि वह किस दिशा के बारे में कहता है। "बाएं" और "दाएं" शब्दों के बारे में सोचें: वे सापेक्ष हैं। जो कि कोई फर्क नहीं पड़ता है, सिवाय इसके कि सभी को सहमत होने की आवश्यकता है कि शब्दों में अर्थ के लिए कौन सा "बाएं" है और कौन सा "सही" है। अगर, एक संस्कृति के रूप में, हमने बाएं और दाएं फ्लिप करने का फैसला किया है, तो आपके पास एक ही मुद्दा होगा कि "राइट टर्न" बनाम "लेफ्ट टर्न" का क्या मतलब है क्योंकि अर्थ बदल गया था। हालाँकि, नामकरण मनमाना है, अर्थ पर।
अपनी टिप्पणी में, जहां आप पूछते हैं, "कृपया केवल शर्तों को परिभाषित न करें", आप बिंदु को याद कर रहे हैं, और मुझे लगता है कि आप सिर्फ शब्दों पर लटकाए जा रहे हैं जब उनके बीच बिल्कुल कोई अंतर नहीं है।
भविष्य के पाठकों के लाभ के लिए, अब मैं कई "फॉरवर्ड" और "इनवर्टेड" इंडेक्स उदाहरण प्रदान करूंगा:
यदि आप सोच रहे हैं कि सूचकांक का व्युत्क्रम कुछ ऐसा है जैसे गणित में किसी फ़ंक्शन का विलोम, जहां प्रतिलोम एक विशेष चीज है जिसका एक अलग रूप है, तो आपको गलत लगता है: यहाँ ऐसा नहीं है।
एक खोज इंजन में आपके पास दस्तावेजों (वेब साइटों पर पृष्ठ) की एक सूची है, जहां आप कुछ कीवर्ड दर्ज करते हैं और परिणाम वापस प्राप्त करते हैं।
एक फॉरवर्ड इंडेक्स (या सिर्फ इंडेक्स) दस्तावेजों की सूची है , और उनमें कौन से शब्द दिखाई देते हैं। वेब खोज उदाहरण में, Google वेब को क्रॉल करता है, दस्तावेजों की सूची का निर्माण करता है, यह पता लगाता है कि प्रत्येक पृष्ठ में कौन से शब्द दिखाई देते हैं।
उल्टे सूचकांक है शब्दों की सूची , और दस्तावेज़ जिसमें वे दिखाई देते हैं। वेब खोज उदाहरण में, आप शब्दों की सूची (आपकी खोज क्वेरी) प्रदान करते हैं, और Google दस्तावेज़ों (खोज परिणाम लिंक) का उत्पादन करता है।
वे दोनों सूचकांक हैं - यह सिर्फ एक सवाल है कि आप किस दिशा में जा रहे हैं। आगे दस्तावेजों से है-> से-> शब्द, उल्टा शब्दों से है-> से-> दस्तावेजों से।
एक अन्य उदाहरण एक DNS लुकअप (जो एक होस्ट नाम लेता है, और एक IP पता देता है) और एक रिवर्स लुकअप (जो एक IP पता लेता है, और आपको होस्ट नाम देता है)।
पुस्तक के पीछे का सूचकांक वास्तव में एक उल्टा सूचकांक है , जैसा कि ऊपर दिए गए उदाहरणों द्वारा परिभाषित किया गया है - शब्दों की एक सूची, और उन्हें पुस्तक में कहां खोजना है। एक पुस्तक में, सामग्री की तालिका आगे के सूचकांक की तरह है : यह उन दस्तावेजों (अध्यायों) की एक सूची है, जिसमें पुस्तक शामिल है, उन खंडों में शब्दों को सूचीबद्ध करने के बजाय, सामग्री की तालिका सिर्फ एक नाम / सामान्य विवरण देती है कि क्या है उन दस्तावेजों (अध्यायों) में निहित है।
आगे सूचकांक अपने सेल फोन में अपने संपर्कों की सूची है, और जो फोन नंबर (सेल, घर, कार्यालय) उन संपर्कों के साथ जुड़े रहे है। उल्टे सूचकांक जिसे आप मैन्युअल एक फ़ोन नंबर दर्ज करने की अनुमति देता है, और जब आप हिट "डायल" आप व्यक्ति का नाम दिखाई, बल्कि संख्या की तुलना में, क्योंकि अपने फोन को फोन नंबर ले लिया है और आप इसके साथ जुड़े संपर्क पाया।
उन्होंने इसे सिर्फ इसलिए उलटा करार दिया क्योंकि पहले से ही एक इंडेक्स है। खोज इंजन का उदाहरण लें, यह दो भागों से बना है: पहला भाग "वेब क्रॉलर और पार्सर" है जो दस्तावेज़ से शब्द तक एक सूचकांक बनाता है, दूसरा भाग खोज डेटाबेस है जो शब्द से दस्तावेज़ में एक सूचकांक बनाता है। पहला सूचकांक मौजूद होने के कारण, हम स्वाभाविक रूप से दूसरे सूचकांक को औंधा सूचकांक कहते हैं।
यदि आप किसी पुस्तक के TOC (तालिका की सामग्री) को सूचकांक के रूप में नाम देते हैं, तो आपको पुस्तक के अंत में सूचकांक को "उल्टे सूचकांक" के रूप में कॉल करना चाहिए। या, दूसरे पक्ष में, आप टीओसी को उल्टे सूचकांक के रूप में कह सकते हैं।
inverted index
भले ही हमारे जीवन में सभी सामान्य सूचकांक पहले से ही उपयोग किए जाते हैं inverted
।
आमतौर पर इंडेक्स के बारे में बोलते समय, आप कुछ अतिरिक्त गणना या प्रक्रियाओं के संग्रहीत परिणामों का मतलब है जो आवेदन को गति देने के लिए किया गया है (जैसे MySQL या अन्य RDBMS MySQL डॉक्स से परामर्श करें )। अनुक्रमण का संबंध कैशिंग आदि से भी हो सकता है।
इन्वर्टेड इंडेक्स संरचना के साथ फाइल बनाता है जो मुख्य रूप से (फुलटेक्स्ट) खोज के लिए है।
उल्टे सूचकांक में दो मुख्य फाइलें हैं:
शब्दावली में पाठ से निकाले गए सामान्य शब्द हैं (निश्चित रूप से सर्वनाम जैसे ब्लैक लिस्ट शब्दों को छानने के बाद)। घटना फ़ाइल शब्दों और दस्तावेजों के बीच संबंध रखती है (शब्द doc1 और doc2 में प्रकट होता है, doc3 में नहीं)। इसे मैट्रिक्स के रूप में दर्शाया जाता है।
ऊपर दी गई छवि में वर्णित दो फाइलों को बनाने की प्रक्रिया को दिखाया गया है।
यदि आप इस समस्याग्रस्त व्यक्ति में आगे रुचि रखते हैं, तो मैं आपको रिकार्डो येट - आधुनिक सूचना पुनर्प्राप्ति ( अमेज़ॅन पर देखें ) द्वारा लिखित एक महान पुस्तक की सिफारिश कर सकता हूं - पृष्ठ 200 के बारे में मुझे लगता है।
आशा करता हूँ की ये काम करेगा :-)
सामान्यता पहले से ही एक अग्रवर्ती और उल्टे सूचकांक के बीच आश्चर्यजनक रूप से भिन्न है, लेकिन इस सवाल के लिए कि एक को आगे सूचकांक और दूसरे को औंधा सूचकांक कहा जाता है, शायद इसीलिए उन्हें इस तरह से कहा जाता है ---
खोज इंजन क्रॉलिंग और इंडेक्सिंग (या किसी पुस्तक के लिए अनुक्रमणिका बनाना) का उदाहरण लेते हुए, वेब पेजों को क्रॉल करते समय (या पुस्तक को पढ़ते हुए) या आगे जाते हुए एक फॉरवर्ड इंडेक्स एक साथ बनाया जा सकता है । इसलिए यदि आपके पास क्रॉल करने के लिए 10 वेबपेज हैं (या किसी पुस्तक में 10 अध्याय) तो आप पहले वेबपेज को क्रॉल कर सकते हैं (पहले अध्याय को पढ़ें) और फिर वेबपेज में दिखाई देने वाले शब्दों की सूची बनाएं (अध्याय में दिखाई देने वाले शब्द) और जारी रखें अन्य वेबपृष्ठों (अन्य अध्यायों) के लिए यह प्रक्रिया तब तक जब तक आप सभी 10 वेबपृष्ठों (सभी 10 अध्यायों को पढ़ लें) को क्रॉल कर लेते हैं, आपका फ़ॉरवर्ड इंडेक्स प्रत्येक वेबपेज (अध्याय) के साथ पूरा होता है, जिसमें शब्दों की एक सूची होती है ।
लेकिन एक उल्टे सूचकांक को बनाने के लिए आपको सभी 10 वेबपृष्ठों (10 अध्यायों को पढ़ें) को क्रॉल करना होगा और फिर प्रत्येक दस्तावेज़ सूची में से प्रत्येक शब्द को लेना होगा और यह पता लगाना होगा कि कौन से दस्तावेज़ों में वह शब्द है। तो यह एक बार पीछे जाने जैसा है, जैसे आपने वेबपेजों को क्रॉल किया है (पुस्तक के अध्याय पढ़ें) । तो इसका उलटा सूचकांक कहा जाता है।
यह सिर्फ मेरी अटकलबाजी है।
सूचकांक कई प्रकार के होते हैं। उदाहरण के लिए, बी-ट्री, आर-ट्री, हैश ... विभिन्न उद्देश्यों के लिए, हमें सही सूचकांक चुनना होगा।
उलटा सूचकांक एक विशेष है। उलटा सूचकांक आमतौर पर पूर्ण पाठ खोज इंजन में उपयोग किया जाता है। उल्टे सूचकांक का उपयोग करें हम किसी दस्तावेज़ में एक शब्द का पता लगा सकते हैं (या दस्तावेज़ सेट) जितनी जल्दी हो सके। मेमोरी और सीपीयू की सीमा के बारे में सोचें, अन्य सूचकांक इस काम को पूरा नहीं कर सकते हैं।
अधिक विवरणों के लिए आप ल्यूसीन दस्तावेज़ पढ़ सकते हैं। यह एक ओपन सोर्स सर्च इंजन है। http://lucene.apache.org/java/docs/index.html
शब्द "इनवर्टेड वर्ड इंडेक्स" एक एकल-दस्तावेज़ के संबंध में परिवर्तन को संदर्भित करता है, जिसमें कई-दस्तावेज़ों की एक सूची वाले (या पहचानने वाले) प्रत्येक अद्वितीय शब्द के लिए कई-शब्द होते हैं। यह प्रभावी रूप से वन-टू-रिलेशनशिप (डॉक्स टू वर्ड्स) और इनवर्टिंग (या उलट) को प्रभावी रूप से ले रहा है, जैसे कि एक नया "इनवर्टेड" वन-टू-कई रिलेशनशिप अब मौजूद है, जो प्रत्येक अद्वितीय-शब्द है जो कई से संबंधित है- दस्तावेज़ (यानी, उस शब्द में सभी शामिल हैं)। यह वास्तव में मूल है कि सरल है, और "उल्टे सूचकांक" शब्द का उपयोग कंप्यूटर और इलेक्ट्रॉनिक उच्च गति अनुक्रमण से पहले ही उसी प्रकार के मैनुअल इंडेक्स का वर्णन करने के लिए किया गया था (हां, स्वीकार किया है, मैं एक पुराना, गीजर प्रोग्रामर हूं, लगभग ग्रेस हॉपर को एक "प्यारी युवा महिला" माना जाता है जब कोबोल एक चमकदार नई भाषा थी तो वापस आने के लिए उपयुक्त उम्र)। कृपया हमें अभी तक केवल गीज़र को न छोड़ें, क्योंकि हम कभी-कभी एक उपयोगी प्रदान कर सकते हैं, और संभवतः मूल्यवान, ऐतिहासिक tid-bit या दो - जब हमारी निजी रैम अभी भी काम कर रही है, वह है। [मुस्कराहट]
उल्टे अनुक्रमित, हमारे पास निम्न रूप हैं:
Word1-> डॉक्स की सूची यह क्रमबद्ध क्रम में होती है।
Word2-> डॉक्स की सूची यह (क्रमबद्ध क्रम) में होती है
यह सर्च इंजन क्वेरी प्रोसेसिंग के लिए बहुत उपयोगी है क्योंकि यह हमें डॉक्स को खोजने की अनुमति देता है जो कि शब्द में होता है।
इस उल्टे सूचकांक के निर्माण के लिए आप पर्यवेक्षित मशीन लेयरिंग का उपयोग कर सकते हैं।
एक और अंतर:
आगे के सूचकांक की तुलना में उल्टे सूचकांक के साथ अद्यतन अद्यतन महंगा है।
फॉरवर्ड इंडेक्स केवल संबंधित डॉक्यूमेंट इंडेक्स में बदलावों को दर्शाते हुए अपडेट को आसानी से हैंडल करता है, जबकि इन्वर्टेड इंडेक्स में, उसी बदलाव को इन्वर्टेड इंडेक्स में कई पदों पर प्रतिबिंबित करना होता है।