টেক্সট রিট্রিভাল ইন্ডেক্সিং কৌশল
কিছু জনপ্রিয় টেক্সট রিট্রিভাল ইন্ডেক্সিং কৌশল রয়েছে যেমন ইনভার্টেড ইন্ডেক্স এবং সিগনেচার ফাইল।
ইনভার্টেড ইন্ডেক্স
একটি ইনভার্টেড ইন্ডেক্স হল একটি ইন্ডেক্স কাঠামো যা দুটি হ্যাশ ইন্ডেক্সড বা B+-ট্রি ইন্ডেক্সড টেবিল ধরে: document_table এবং term_table, যেখানে document_table একটি ডকুমেন্ট রেকর্ড সেট নিয়ে গঠিত, প্রতিটিতে দুটি ফিল্ড থাকে: doc_id এবং posting_list, যেখানে posting_list হল মেথডের একটি তালিকা (বা মেথডের পয়েন্টার) যা ডকুমেন্টে উপস্থিত, কিছু প্রাসঙ্গিকতা মাপ অনুযায়ী সাজানো।
term_table একটি টার্ম রেকর্ড সেট ধারণ করে, প্রতিটিতে দুটি ফিল্ড থাকে: term_id এবং posting_list, যেখানে posting_list সেই টার্মটি যেসব রেকর্ডে ঘটে সেসব রেকর্ড আইডেন্টিফায়ারের তালিকা নির্দেশ করে।
এটি একটি প্রদত্ত টার্ম সেটের সাথে সম্পর্কিত সমস্ত ডকুমেন্ট খুঁজে বের করতে পারে। এটি একটি প্রদত্ত ডকুমেন্ট সেটের সাথে সম্পর্কিত সমস্ত টার্ম খুঁজে বের করতে ব্যবহৃত হয়। উদাহরণস্বরূপ, একটি টার্ম সেটের সাথে সম্পর্কিত সমস্ত ডকুমেন্ট খুঁজে বের করতে, আমরা প্রথমে টার্ম টেবিলে প্রতিটি টার্মের জন্য ডকুমেন্ট আইডেন্টিফায়ারের তালিকা খুঁজে পাই, এবং তারপর সেগুলো ইন্টারসেক্ট করে প্রাসঙ্গিক রেকর্ডের সংগ্রহ পাই।
ইনভার্টেড ইন্ডেক্স বাজারে ব্যাপকভাবে ব্যবহৃত হয়। সেগুলো বাস্তবায়ন করা সহজ। পোস্টিং লিস্ট দীর্ঘ হতে পারে, যা স্টোরেজ প্রয়োজনীয়তা বড় করে তোলে। সেগুলো বাস্তবায়ন করা সহজ কিন্তু সিনোনিমি (যেখানে দুটি ভিন্ন শব্দ একই অর্থ বহন করতে পারে) এবং পলিসেমি (যেখানে একটি একক শব্দের একাধিক অর্থ হতে পারে) হ্যান্ডল করার জন্য সন্তোষজনক নয়।
সিগনেচার ফাইল
একটি সিগনেচার ফাইল হল একটি ফাইল যা ডেটাবেসের প্রতিটি রেকর্ডের জন্য সিগনেচার ডেটা সংরক্ষণ করে। প্রতিটি সিগনেচার b বিটের একটি স্থির আকার دارد যা টার্ম সংজ্ঞায়িত করে। একটি সহজ এনকোডিং স্কিম নিম্নরূপ। একটি রেকর্ড সিগনেচারের প্রতিটি বিট 0-এ সেট করা থাকে।
যদি সংজ্ঞায়িত টার্মটি রেকর্ডে উপস্থিত থাকে তবে একটি বিট 1-এ সেট করা হয়। একটি সিগনেচার S₁ অন্য সিগনেচার S₂-এর সাথে ম্যাচ করে যদি সিগনেচার S₂-এ সেট করা প্রতিটি বিট S₁-এও সেট থাকে। যেহেতু সাধারণত উপলব্ধ বিটের চেয়ে বেশি টার্ম থাকে, একাধিক টার্ম একই বিটে ম্যাপ করা যেতে পারে।
এই এক-से-অনেক ম্যাপিং সার্চকে ব্যয়বহুল করে তোলে কারণ একটি রেকর্ড যা একটি কোয়েরির সিগনেচার ম্যাচ করে সেটি কোয়েরির কীওয়ার্ড সেট ধারণ করে তা নিশ্চিত নয়। রেকর্ডগুলি পুনরুদ্ধার, পার্স, স্টেম, এবং টেস্ট করতে হবে। ফрикোয়েন্সি বিশ্লেষণ, স্টেমিং, এবং স্টপ ওয়ার্ড ফিল্টারিং প্রথমে প্রয়োগ করে, এবং তারপর হ্যাশিং পদ্ধতি এবং সুপারইমপোজড কোডিং কৌশল ব্যবহার করে কীওয়ার্ড তালিকাকে বিট উপস্থাপনায় এনকোড করে উন্নতি করা যেতে পারে।