نمایه‌سازی در موتورهای جستجو
نمایه سازی

نمایه سازی:
هدف از ذخیره‌سازی یک نمایه، بهینه‌سازی سرعت و کارایی در یافتن اسناد مرتبط برای یک جستار مورد جستجو است. بدون یک نمایه، موتور جستجو باید مجموعه ای از جملات هر سند را اسکن کند که نیاز به زمان و توان محاسباتی زیادی دارد.
برای مثال، در حالی که یک نمایه از ۱۰٬۰۰۰ سند را می‌توان در عرض یک میلی ثانیه، یک اسکن پی در پی از هر کلمه در ۱۰٬۰۰۰ سند بزرگ ممکن است ساعت‌ها طول بکشد.
در مقایسه با کاهش قابل توجهی که درزمان لازم برای به روز رسانی انجام می‌شود، برای ذخیره‌سازی زمان در بازیابی اطلاعات میزان فضای اضافی برای ذخیره نمایه در کامپیوتر خریداری می‌شود.
عوامل طراحی نمایه سازی:
عوامل عمده در طراحی معماری موتور جستجو عبارتند از:
ادغام:
چگونه داده‌ها در نمایه‌ها ثبت می‌شوند و چگونه کلمات یا ویژگی‌های موضوعی موجود در متن به نمایه اضافه می‌شوند، و اینکه آیا چند نمایه ساز می‌توانند به صورت یکنواخت کار کنند.
ابتدا باید نمایه ساز بررسی شود که آیا محتوای قدیمی یا محتویات جدید را به روز می‌کند یا خیر. گذرگاه به‌طور معمول با سیاست جمع‌آوری اطلاعات مرتبط است.
با مفهوم فرمان SQL Merge و دیگر الگوریتم‌های ادغام مشابه می‌توان نمایه‌های موتور جستجو ادغام کرد.
تکنیک‌های ذخیره‌سازی:
چگونه می‌توان داده‌های نمایه را ذخیره کرد، یعنی اینکه باید داده‌ها فشرده یا فیلتر شوند.
اندازه نمایه:
چقدر فضای ذخیره‌سازی کامپیوتر برای پشتیبانی از نمایه ضروری است.
سرعت جستجو:
چقدر سریع یک کلمه می‌تواند در نمایه معکوس یافت شود. سرعت یافتن ورودی در یک ساختار داده، در مقایسه با اینکه سرعت آن می‌تواند به روز شود یا حذف شود، تمرکز اصلی علوم رایانه است.
نگهداری:
چگونه نمایه در طول زمان نگهداری می‌شود.
میزان خطا:
قابلیت اعتماد سرویس خود اهمیت دارد.
مسائلی شامل برخورد با فساد نمایه، تعیین اینکه آیا داده‌های بد را می‌توان منزوی کرد، با سخت‌افزار بد،  پارتیشن‌بندی، و طرح‌هایی مانند پراکندگی مجدد هش یا پارتیشن‌بندی کامپوزیت می‌تواند تکثیر کند.
ساختار داده‌های نمایه:
معماری موتور جستجو که در آن نمایه سازی انجام می‌شود، و در روش ذخیره‌سازی نمایه برای دیدار با عوامل مختلف طراحی متفاوت است.
درخت پسوند:
شکلی مانند ساختار درخت است، که از جستجوی خطی پشتیبانی می‌کند که با ذخیره پسوندهای کلمات ساخته می‌شود.
درخت پسوند نوعی درخت است، که تلاش می‌کند تا هش کردن را گسترش دهد، این برای نمایه سازی موتورهای جستجو مهم است.
برای جستجوی الگوهای در توالی‌های DNA و خوشه بندی مورد استفاده قرار می‌گیرد.
یک نکته مهم این است که ذخیره یک کلمه در درخت ممکن است، فضای بیشتری از آنچه لازم است برای ذخیره خود کلمه نیاز داشته باشد. که آرایه پیوست به عنوان جایگزن آن است که به نظر می‌رسد نیاز به حافظه مجازی کمتری دارد و از فشرده سازی داده‌ها مانند الگوریتم BWT پشتیبانی می‌کند.
نمایه معکوس:
لیستی از وقایع هر معیار جستجو اتمی ذخیره می‌کند، که به‌طور معمول در قالب یک جدول هش یا درخت دودویی است.
نمایه استناد:
نقل قول‌ها یی که برای حمایت از تجزیه و تحلیل استنادی، یا استخراج شده از متن را ذخیره‌سازی می‌کند.
نمایه Ngram:
توالی طول داده‌ها را برای پشتیبانی از انواع دیگر بازیابی یا استخراج متن ذخیره‌سازی می‌کند.
ماتریس اصطلاح اسناد:
زمانی که در تجزیه و تحلیل معنایی پنهان رخ می‌دهد، از یک ماتریس دو بعدی استفاده می شوده که کلمات در اسناد در آن ذخیره می‌شوند.
فرصت‌های زیادی برای شرایط مسابقه و گسل‌های منسجم وجود دارد.
به عنوان مثال، مجموعه ای از نوشته‌ها جدید به یک سند اضافه می‌شود و نمایه باید به روز شود، اما نمایه به‌طور همزمان به هردو نیازهای جستار جستجو پاسخگو است.
این یک برخورد بین دو وظیفه رقابتی است. در نظر بگیرید که نویسندگان تولیدکننده اطلاعات هستند و یک نمایه ساز وب مصرف‌کننده این اطلاعات است، و کار آن گرفتن متن و ذخیره آن در کش (یا تنه) می‌باشد.
نمایه پیشرو مصرف‌کننده اطلاعات تولید شده توسط تنه است، و نمایه معکوس مصرف‌کننده اطلاعات تولید شده توسط نمایه پیشرو است.
این معمولاً به عنوان یک اشاره به مدل تولیدکننده-مصرف کننده است.
نمایه ساز تولیدکننده اطلاعات قابل جستجو است و کاربران مصرف‌کنندگان هستند، که باید جستجو کنند؛ که در هنگام کار با ذخیره‌سازی توزیع شده و پردازش توزیع شده بزرگ وارد چالش می‌شود.
در تلاش برای مقیاس با مقادیر بالاتری از اطلاعات نمایه سازی شده نشان داده شده، معماری موتور جستجو ممکن است، شامل محاسبات توزیع شده باشد، جایی که موتور جستجو شامل چندین ماشین است که در هم ادغام می‌شوند.
این باعث افزایش احتمال ناسازگاری می‌شود و حفظ ساختار کاملاً هماهنگ، توزیع شده و موازی آن را دشوار می‌سازد.
نمایه‌های معکوس:
بسیاری از موتورهای جستجو با ترکیب کردن یک نمایه معکوس در هنگام ارزیابی با یک جستار برای جستجو سریع اسناد حاوی کلمات موجود در یک جستار قرار می‌دهند و سپس این مدارک را با توجه به رتبه طبقه‌بندی می‌کنند.
از آنجا که نمایه معکوس لیستی از اسناد حاوی هر کلمه را ذخیره می‌کند، موتور جستجو برای یافتن اسناد مرتبط با هر کلمه در جستار می‌تواند از طریق دسترسی مستقیم به سرعت به منظور یافتن اسناد مربوط استفاده شود.
این نمایه تنها می‌تواند تعیین کند که آیا یک کلمه در یک سند خاص وجود دارد، از آنجا که هیچ اطلاعاتی در مورد فرکانس و موقعیت کلمه ذخیره نمی‌شود؛ بنابراین به عنوان نمایه بولین در نظر گرفته شده‌است.
چنین نمایه ای تعیین می‌کند کدام یک از اسناد با یک جستار مطابق است، اما اسناد مشابه را رتبه‌بندی نمی‌کند.
در برخی از طرح‌ها، نمایه شامل اطلاعات اضافی مانند فرکانس هر کلمه در هر سند یا موقعیت یک کلمه در هر سند است، اطلاعات موقعیت این امکان را می‌دهد تا الگوریتم جستجو نزدیکی کلمه برای پشتیبانی از جستجو برای عبارات برای شناسایی کند؛ فرکانس را نیز می‌توان برای کمک به جستار استفاده کرد.
چنین موضوعاتی تمرکز اصلی تحقیق در بازیابی اطلاعات است.
نمایه معکوس یک ماتریس پراکنده است، زیرا در هر سند تمام کلمات وجود ندارد. برای استفاده کمتر از حافظه ذخیره‌سازی کامپیوتر، آن را به صورت متفاوت از یک آرایه دو بعدی ذخیره می‌شود. این نمایه شبیه ماتریس سند اصطلاحاتی از تحلیل معنایی نهفته استفاده می‌کند. نمایه معکوس می‌تواند یک شکل از جدول هش را مورد توجه قرار دهد.
در بعضی موارد، این نمایه یک شکل از یک درخت دودویی است، که نیاز به ذخیره‌سازی بیشتری دارد. اما ممکن است، زمان جستجو را کاهش دهد. در نمایه‌های بزرگتر معماری معمولاً یک جدول هش توزیع شده است.
آرایه ادغام:
آرایه معکوس از طریق ادغام یا بازسازی پر می‌شود. یک بازسازی مشابه یک ادغام است، اما ابتدا محتویات نمایه معکوس را حذف می‌کند.
معماری ممکن است به منظور پشتیبانی از آرایه سازی افزایشی طراحی شده باشد، جایی که یک شناسایی سند ادغام می‌شود یا اسناد افزوده یا به روز رسانی می‌شوند و سپس هر سند را به کلمات تجزیه می‌کند.
برای دقت فنی، یک ادغام، اسنادی که اخیراً نمایه شده‌اند، معمولا در حافظه مجازی ذخیره می‌شوند، با کش مخفی در یک یا چند هارد دیسک کامپیوتر متصل می‌شوند.
پس از تجزیه، نمایه ساز سند اشاره شده را به لیست سند برای کلمات مناسب اضافه می‌کند.
در یک موتور جستجوی بزرگتر، فرایند پیدا کردن هر کلمه در نمایه معکوس (برای گزارش اینکه در یک سند اتفاق افتاده‌است) ممکن است خیلی وقت گیر باشد؛ بنابراین این فرایند معمولاً به دو بخش تقسیم می‌شود: توسعه یک نمایه پیشرو و فرایندی که محتویات نمایه پیشرو را به نمایه معکوس طبقه‌بندی می‌کند. نمایه معکوس به همین دلیل نامیده می‌شود زیرا این یک معکوس کردن نمایه پیشرو است.
نمایه پیشرو:
نمایه پیشرو فهرستی از کلمات برای هر سند را ذخیره می‌کند.
که منطق پشت توسعه یک نمایه پیشرو است، که به عنوان اسناد تجزیه می‌شود، بهتر است، بلافاصله کلمات را در هر سند ذخیره کنید.
این طرح پردازش سیستم نا همزمان را قادر می‌سازد، که تا حدی از تضعیف به روز رسانی نمایه معکوس جلوگیری می‌کند. نمایه پیشرو دسته‌بندی می‌شود تا آن را به یک نمایه معکوس تبدیل کند.
نمایه پیشرو اساساً یک لیست دوگانه است که متشکل از یک سند و یک کلمه می‌باشد که توسط سند جمع‌آوری شده‌است.
تبدیل نمایه پیشرو به یک نمایه معکوس فقط مربوط به مرتب‌سازی جفت‌ها با کلمات است.
در این راستا، نمایه معکوس یک نمایه پیشروی است که کلمه مرتب شده.
فشرده سازی:
تولید یا نگهداری یک موتور جستجو در مقیاس وسیع، چالش مهم ذخیره‌سازی و پردازش را ایجاد می‌کند. بسیاری از موتورهای جستجو از فشرده سازی برای کاهش اندازه نمایه‌ها در دیسک استفاده می‌کنند. ناریوی زیر را برای یک متن کامل، موتور جستجوی اینترنتی در نظر بگیرید.
۸ بیت (یا ۱ [[تولید یا نگهداری یک موتور جستجو در مقیاس وسیع، چالش مهم ذخیره‌سازی و پردازش را ایجاد می‌کند. بسیاری از موتورهای جستجو از فشرده سازی برای کاهش اندازه نمایه‌ها در دیسک استفاده می‌کنند. ناریوی زیر را برای یک متن کامل، موتور جستجوی اینترنتی در نظر بگیرید.]]) برای ذخیره یک کاراکتر تنها طول می‌کشد. بعضی از کدگذاری‌ها از هر بایت ۲بایت استفاده می‌کند.
میانگین تعداد حرف در هر کلمه داده شده در یک صفحه ممکن است ۵ عدد باشد.
با توجه به این سناریو، یک نمایه غیر فشرده (با فرض تلفیق نشدن، ساده، نمایه) برای ۲ میلیارد صفحات وب نیاز به ذخیره ۵۰۰ میلیارد ورودی است. با در نظر گرفتن ۱ بایت در هر حرف، یا ۵ بایت در هر کلمه، موتور جست و جو نیاز به ۲۵۰۰ گیگابایت فضای ذخیره‌سازی دارد.
این فضای مورد نیاز می‌تواند حتی برای یک معماری ذخیره‌سازی توزیع شده که دارای خطا هست نیز بزرگتر باشد. بسته به تکنیک فشرده سازی انتخاب شده، نمایه را می‌توان به یک کسری از این اندازه کاهش داد.
مزایای همچون زمان و پردازش لازم برای آن فشرده سازی را مقرون به صرفه می‌کند.
بدیهی است، طرح‌های موتور جستجو در مقیاس وسیع شامل هزینه ذخیره‌سازی و همچنین هزینه‌های برق برای ذخیره‌سازی است؛ بنابراین فشرده سازی یک کاهش هزینه است.