সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে আমরা সারাক্ষণ সূচী তৈরি করি (যেমন, ডাটাবেসে) তবে আমি প্রচুর লোককে উল্টো সূচক সম্পর্কে কথা বলতে শুনি। দুজনের মধ্যে মৌলিকভাবে আলাদা কিছু আছে কি? তারা একই জিনিস মত শব্দ।
সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে আমরা সারাক্ষণ সূচী তৈরি করি (যেমন, ডাটাবেসে) তবে আমি প্রচুর লোককে উল্টো সূচক সম্পর্কে কথা বলতে শুনি। দুজনের মধ্যে মৌলিকভাবে আলাদা কিছু আছে কি? তারা একই জিনিস মত শব্দ।
উত্তর:
একটি সাধারণ ব্যবহার হ'ল দ্রুত ... সম্পূর্ণ পাঠ্য সন্ধানের অনুমতি দেওয়া "to
দুটি ধরণের দিকনির্দেশকে বোঝায় । একটি আপনাকে সূচকের মাধ্যমে এগিয়ে নিয়ে যায় এবং অন্যটি আপনাকে সূচকের মাধ্যমে পিছনে (বিপরীত) নিয়ে যায়। এটাই. এখানে উন্মোচন করার কোনও রহস্য নেই। তা না হলে দুই ধরনের অভিন্ন, এটা ঠিক কি তথ্য আপনার একটি প্রশ্ন আছে ফলে আপনি যে তথ্য করার চেষ্টা করছেন, এবং খুঁজে।
আপনার তদন্তের সমাধানের জন্য, আমি মনে করি না যে এটি ব্যবহারের কারণটি আজ কেন তা জানা আছে to কোনটি কোনটি forward
এবং এর অর্থটি কোনটি তা নির্ধারণ করা গুরুত্বপূর্ণ কারণ ।inverted
হ'ল আমরা সকলেই তাদের সম্পর্কে কথোপকথন করতে পারি এবং সকলেই জানেন যে আমরা কোন দিকের বিষয়ে কথা বলছি। "বাম" এবং "ডান" পদগুলি সম্পর্কে চিন্তা করুন: তারা আপেক্ষিক। কোনটি কোন বিষয় নয়, তা বাদ দিয়ে প্রত্যেকেরই বোঝাতে হবে কোনটি "বাম" এবং কোনটি "ডান" শব্দের অর্থের জন্য। যদি, একটি সংস্কৃতি হিসাবে, আমরা বাম এবং ডানদিকে উল্টানোর সিদ্ধান্ত নিয়েছি, তবে আপনি যে "ডানদিকে" বনাম "বাম বাঁক" কী তা বোঝার পরে একই সমস্যাটি বোঝা গেল যেহেতু সম্মতি অনুসারে অর্থ পরিবর্তিত হয়েছিল। তবে নামকরণটি নির্বিচারে,
আপনার মন্তব্যে আপনি যেখানে জিজ্ঞাসা করেছেন, "দয়া করে কেবলমাত্র শর্তাদি সংজ্ঞায়িত করবেন না", আপনি বিন্দুটি অনুপস্থিত রয়েছেন এবং আমার মনে হয় আপনি যখন শব্দটির মধ্যে একেবারেই কোনও পার্থক্য না পেয়ে থাকেন তখনই আপনি স্তব্ধ হয়ে যাচ্ছেন।
ভবিষ্যতের পাঠকদের সুবিধার জন্য, আমি এখন বেশ কয়েকটি "ফরোয়ার্ড" এবং "উল্টানো" সূচী উদাহরণ সরবরাহ করব:
আপনি যদি ভাবছেন যে কোনও সূচকের বিপরীতটি গণিতের কোনও ক্রিয়াকলাপের বিপরীতের মতো কিছু , যেখানে বিপরীতটি একটি বিশেষ জিনিস যার আলাদা রূপ রয়েছে, তবে আপনি ভুল করছেন: এখানে ঘটনাটি এমন নয়।
একটি অনুসন্ধান ইঞ্জিনে আপনার দস্তাবেজের একটি তালিকা রয়েছে (ওয়েব সাইটের পৃষ্ঠাগুলি), যেখানে আপনি কয়েকটি কীওয়ার্ড প্রবেশ করেন এবং ফলাফলগুলি ফিরে পান।
একটি ফরোয়ার্ড সূচক (বা কেবল সূচক) হ'ল নথিগুলির তালিকা এবং এর মধ্যে কোন শব্দ উপস্থিত হয়। ওয়েব অনুসন্ধান উদাহরণে, প্রতিটি পৃষ্ঠায় কোন শব্দটি উপস্থিত হয় তা নির্ধারণ করে, ডকুমেন্টগুলির তালিকা তৈরি করে গুগল ওয়েব ক্রল করে।
উল্টানো সূচক হয় শব্দের তালিকা , এবং দস্তাবেজগুলি যা তারা প্রদর্শিত হবে। ওয়েব অনুসন্ধান উদাহরণে, আপনি শব্দের তালিকা সরবরাহ করেন (আপনার অনুসন্ধানের ক্যোয়ারী) এবং গুগল নথি তৈরি করে (অনুসন্ধান ফলাফলের লিঙ্কগুলি)।
এগুলি উভয় সূচক - আপনি কোন দিকে যাচ্ছেন এটি কেবল একটি প্রশ্ন। ফরোয়ার্ড হ'ল ডকুমেন্টস থেকে-> থেকে-> শব্দ থেকে, উল্টে থাকে শব্দ-> থেকে-> নথি থেকে documents
আরেকটি উদাহরণ হ'ল ডিএনএস লুকআপ (যা হোস্টের নাম নেয়, এবং একটি আইপি ঠিকানা দেয়) এবং একটি বিপরীত চেহারা (যা একটি আইপি ঠিকানা নেয় এবং আপনাকে হোস্টের নাম দেয়)।
কোনও বইয়ের পেছনের সূচকটি আসলে একটি উল্টানো সূচক , যা উপরের উদাহরণগুলি দ্বারা সংজ্ঞায়িত - শব্দের একটি তালিকা এবং বইটিতে সেগুলি কোথায় পাওয়া যায়। একটি বইতে বিষয়বস্তুর সারণিটি একটি ফরোয়ার্ড সূচকের মতো : এটি বইতে থাকা নথির একটি তালিকা (অধ্যায়), সেই বিভাগগুলিতে শব্দগুলি তালিকাভুক্ত না করে, বিষয়বস্তু সারণীতে কেবল একটি নাম / সাধারণ বিবরণ দেয় যা এই নথিতে (অধ্যায়) অন্তর্ভুক্ত।
এগিয়ে সূচক আপনার সেল ফোনে আপনার পরিচিতির তালিকা, এবং যা ফোন নম্বর (সেল, বাড়ি, কর্মস্থল) ঐ পরিচিতিদের সাথে যুক্ত করা হয়। উল্টানো সূচক কি আপনি নিজে একটি ফোন নম্বর লিখুন অনুমতি দেয়, এবং যখন আপনি আঘাত "ডায়াল" তুমি কি ব্যক্তির নাম দেখতে, বরং সংখ্যার চেয়ে, কারণ আপনার ফোন ফোন নম্বর নিয়েছে এবং আপনি এটি সঙ্গে যুক্ত পরিচিতি পাওয়া যায়নি।
ইতিমধ্যে একটি ফরোয়ার্ড সূচক আছে বলেই তারা এটিকে উল্টা বলেছে। সার্চ ইঞ্জিনের উদাহরণটি ধরুন, এটি দুটি অংশ দ্বারা রচিত: প্রথম অংশটি হ'ল "ওয়েব ক্রলার এবং পার্সার" যা নথি থেকে শব্দের একটি সূচক তৈরি করে, দ্বিতীয় অংশটি অনুসন্ধান ডাটাবেস যা শব্দ থেকে ডকুমেন্টের সূচক তৈরি করে। প্রথম সূচকের অস্তিত্ব থাকায় আমরা স্বাভাবিকভাবেই দ্বিতীয় সূচকটিকে উল্টো সূচক বলে থাকি।
আপনি যদি কোনও বইয়ের টিওসি (সামগ্রীর সারণি )টিকে সূচক হিসাবে নাম দেন, তবে আপনার বইয়ের শেষে সূচকটি "উল্টানো সূচক" হিসাবে কল করা উচিত। অথবা, অন্যদিকে, আপনি টিওসিটিকে উল্টো সূচক হিসাবে কল করতে পারেন।
inverted index
যদিও আমাদের জীবনের সমস্ত সাধারণ সূচক ইতিমধ্যে হিসাবে ব্যবহৃত হয় inverted
।
সাধারণত সূচকের কথা বলার সময়, আপনি কিছু যুক্ত গণনা বা পদ্ধতির সঞ্চিত ফলাফলগুলি বোঝাতে চেয়েছিলেন যা অ্যাপ্লিকেশনটি গতি বাড়ানোর জন্য করা হয়েছে (যেমন মাইএসকিউএল বা অন্যান্য আরডিবিএমএস মাইএসকিউএল ডক্সের সাথে পরামর্শ করুন )। ইনডেক্সিং ক্যাচিং ইত্যাদির সাথেও সম্পর্কিত হতে পারে etc.
ইনভার্টেড ইনডেক্স এমন কাঠামোযুক্ত ফাইল তৈরি করে যা মূলত (ফুলটেক্সট) অনুসন্ধানের জন্য অন্তর্ভুক্ত।
ইনভার্টেড ইনডেক্স দুটি প্রধান ফাইল নিয়ে গঠিত:
শব্দভান্ডারে সাধারণ শব্দগুলি পাঠ্য থেকে বের করা হয় (অবশ্যই সর্বনামের মতো ব্ল্যাকলিস্ট শব্দগুলি ফিল্টার করার পরে)। ঘটনা ফাইলটি শব্দ এবং নথিগুলির মধ্যে সংযোগ ধারণ করে (শব্দ 1 ডক 1 এবং ডক 2 এ প্রদর্শিত হয়, ডক 3 তে নয়)। এটি একটি ম্যাট্রিক্সের আকারে উপস্থাপিত হয়।
উপরের চিত্রটিতে উল্লিখিত দুটি ফাইল তৈরির প্রক্রিয়াটি দেখানো হয়েছে।
আপনি যদি এই সমস্যাজনিত বিষয়ে আরও আন্তঃস্বাক্ষর হন তবে আমি আপনাকে রিকার্ডো ইয়াটেড - আধুনিক তথ্য পুনরুদ্ধার ( এটি আমাজনে দেখুন ) - র প্রায় 200 পৃষ্ঠা মনে করি বলে একটি দুর্দান্ত বইয়ের সুপারিশ করতে পারি।
আশা করি এটা সাহায্য করবে :-)
স্বাভাবিকতা ইতিমধ্যে একটি ফরোয়ার্ড এবং একটি উল্টানো সূচকের মধ্যে বিস্ময়করভাবে পার্থক্য করেছে তবে কেন একজনকে ফরোয়ার্ড সূচক এবং অন্যটিকে উল্টো সূচক বলা হয় এই প্রশ্নের জন্য, সম্ভবত এ কারণেই তাদের এ কারণেই বলা হয় ---
সার্চ ইঞ্জিন ক্রলিং এবং ইনডেক্সিং (বা কোনও বইয়ের জন্য বিল্ডিং ইনডেক্স) এর উদাহরণ গ্রহণ করে আপনি ওয়েব পৃষ্ঠাগুলি ক্রল করার সময় (বা বইটি পড়তে) বা এগিয়ে যাওয়ার সময় একটি ফরোয়ার্ড সূচক এক সাথে তৈরি করা যেতে পারে । সুতরাং আপনার যদি ক্রল করার জন্য 10 টি ওয়েবপৃষ্ঠা থাকে (বা কোনও বইয়ের 10 টি অধ্যায়) আপনি প্রথম ওয়েবপৃষ্ঠাটি ক্রল করতে পারেন (প্রথম অধ্যায়টি পড়ুন) এবং তারপরে ওয়েবপৃষ্ঠায় উপস্থিত শব্দের একটি তালিকা তৈরি করুন (অধ্যায়টিতে প্রদর্শিত শব্দগুলি) এবং চালিয়ে যেতে পারেন অন্যান্য ওয়েবপৃষ্ঠাগুলির (অন্যান্য অধ্যায়গুলির) জন্য এই প্রক্রিয়াটি তাই 10 টি ওয়েবপৃষ্ঠাগুলি ক্রল করার পরে (সমস্ত 10 টি অধ্যায় পড়ুন) আপনার ফরোয়ার্ড সূচকটি প্রতিটি ওয়েবপৃষ্ঠা (অধ্যায়) এর সাথে থাকা শব্দের তালিকার দিকে ইঙ্গিত করে সম্পূর্ণ হবে ।
তবে একটি উল্টানো সূচী তৈরি করতে আপনাকে সমস্ত 10 টি ওয়েবপৃষ্ঠাগুলি ক্রল করতে হবে (10 টি অধ্যায়টি পড়ুন) এবং তারপরে প্রতিটি নথির তালিকা থেকে প্রতিটি শব্দ নেবেন এবং কোন নথিতে সেই শব্দটি রয়েছে তা নির্ধারণ করুন। তাই এই অনগ্রসর যাচ্ছে একবার আপনি ওয়েব পেজ ক্রল আছে ভালো হয় (পড়া বইয়ের অধ্যায়) । সুতরাং এটি একটি বিপরীত সূচক বলা হয়।
এটি আমার অনুমান মাত্র।
বিভিন্ন ধরণের সূচক রয়েছে। উদাহরণস্বরূপ, বি-ট্রি, আর-ট্রি, হ্যাশ ... বিভিন্ন উদ্দেশ্যে, আমাদের অবশ্যই সঠিক সূচি নির্বাচন করতে হবে।
ইনভার্টেড ইনডেক্স বিশেষ একটি। উল্টানো সূচক সাধারণত সম্পূর্ণ পাঠ্য অনুসন্ধান ইঞ্জিনে ব্যবহৃত হয়। ইনভার্টেড ইনডেক্স ব্যবহার করুন আমরা একটি ডকুমেন্টে (বা দস্তাবেজগুলি সেট করা) যত তাড়াতাড়ি সম্ভব কোনও শব্দের সন্ধান করতে পারি। মেমরির সীমাবদ্ধতা এবং সিপিইউ সম্পর্কে চিন্তা করুন, অন্যান্য সূচি এই কাজটি শেষ করতে পারে না।
আপনি আরও তথ্যের জন্য লুসিন ডকুমেন্টটি পড়তে পারেন। এটি একটি মুক্ত উত্স অনুসন্ধান ইঞ্জিন। http://lucene.apache.org/java/docs/index.html
"ইনভার্টেড ওয়ার্ড ইনডেক্স" শব্দটি বহু-শব্দের সমন্বিত একক নথির সম্পর্কের পরিবর্তনকে বোঝায়, প্রতিটি অনন্য শব্দের সাথে অনেকগুলি নথির একটি তালিকা (বা সনাক্তকরণ) থাকে। এটি কার্যকরভাবে একের মধ্যে একাধিক সম্পর্ক নিয়ে চলেছে (ডক্স টু ওয়ার্ডে) এবং এটিকে উল্টানো (বা বিপরীতভাবে) এমনভাবে তৈরি করা হচ্ছে যে এখন একটি নতুন "ইনভার্টেড" ওয়ান-টু-মেন রিলেশনশিপ বিদ্যমান, যা বহু- সম্পর্কিত প্রতিটি-অনন্য-শব্দ is ডকুমেন্টস (অর্থাত্ সেই শব্দটি ধারণ করে) এটির উত্সটি আসলেই সহজ and গ্রেস হপারকে "মিষ্টি যুবতী" হিসাবে বিবেচনা করার মতো যথেষ্ট বয়স্ক সিওবিএল একটি চকচকে নতুন ভাষা থাকাকালীন পিছনে আদালতের জন্য উপযুক্ত বয়স)। দয়া করে এখনও আমাদের গিজারগুলি এড়ান না, কারণ আমরা মাঝে মাঝে একটি দরকারী, এবং সম্ভবত মূল্যবান, historicalতিহাসিক জোয়ার-বা দুটি সরবরাহ করতে পারি - যখন আমাদের ব্যক্তিগত র্যাম এখনও কাজ করছে, তা। [হাসি]
ইনভার্টেড ইনডেক্সগুলিতে আমাদের নিম্নলিখিত ফর্ম রয়েছে:
word1-> দস্তাবেজের তালিকাতে এটি ঘটে (সাজানো ক্রম)
word2-> দস্তাবেজের তালিকাতে এটি ঘটে (সাজানো ক্রম)
এটি সার্চ ইঞ্জিন ক্যোয়ারী প্রসেসিংয়ের জন্য খুব দরকারী কারণ এটি আমাদের যে শব্দটির মধ্যে ডক্স রয়েছে তা খুঁজে পেতে দেয়।
এই উল্টানো সূচকটি তৈরি করতে আপনি তদারকি করা মেশিন লারিং ব্যবহার করতে পারেন।
আরও একটি পার্থক্য:
ইনভার্টেড ইনডেক্সের সাথে হ্যান্ডলিং আপডেটগুলি ফরওয়ার্ড সূচকের তুলনায় ব্যয়বহুল।
ফরোয়ার্ড সূচকগুলি কেবলমাত্র সম্পর্কিত ডকুমেন্ট সূচকে পরিবর্তনগুলি প্রতিবিম্বিত করে সহজেই আপডেটগুলি পরিচালনা করে, যখন উল্টানো সূচীতে একই পরিবর্তনটি উল্টানো সূচক জুড়ে একাধিক অবস্থানে প্রতিফলিত হয়।