Apache Solr یک پلتفرم جستجوی منبع باز است که بر روی یک کتابخانه جاوا به نام Lucene ساخته شده است.

 Solr  یک بستر جستجوی محبوب برای وب‌سایت‌ها است زیرا می‌تواند چندین سایت را فهرست‌بندی و جستجو کند و توصیه‌های مربوط به مطالب مرتبط را بر اساس طبقه‌بندی جستجو بازگرداند. این ابزار همچنین یک بستر جستجوی محبوب برای سازمان‌ها است زیرا می‌توان از آن برای فهرست و جستجوی اسناد و پیوست‌های ایمیل استفاده کرد.

Solr  با پروتکل انتقال Hypertext) HTTP) و زبان نشانه‌گذاری گسترده (XML)  کار می‌کند. این برنامه رابط‌های برنامه ای (API)  برای Javascript Object Notation (JSON) پایتون و روبی ارائه می دهد. با توجه به پروژه Apache Lucene ،Solr امکاناتی را فراهم کرده است که باعث محبوبیت آن در بین مدیران شده است از جمله:

  • نمایه‌سازی در زمان واقعی
  • همانندسازی خودکار فهرست
  • ثبت آمار سرور
  • بازیابی خودکار
  • تجزیه و فهرست‌بندی فهرست مؤثر
  • فهرست‌های جستجوی چندگانه
  • حافظه پنهان کاربر
  • طراحی برای ترافیک با حجم بالا
  • مقیاس‌پذیری، انعطاف‌پذیری و توسعه‌پذیری
  • جستجوی کامل متن
  • جستجوی جغرافیایی
  • پرس‌وجو متعادل با بارکاری

 

نحوه کار Apache Solr:

به منظور جستجوی یک سند، Apache Solr عملیات زیر را به ترتیب انجام می‌دهد:

  1. نمایه‌سازی: اول از همه، اسناد را به قالب قابل خواندن با ماشین تبدیل می‌کند که به آن Indexing گفته می‌شود.
  2. پرس و جو: در این مرحله شرایط پرس‌وجو از کاربر پرسیده می‌شود. برای مثال این پرس‌وجوها می‌توانند تصاویر یا کلمات کلیدی باشند.
  3. نقشه‌برداری: این ابزار سپس درخواست کاربر را به اسناد ذخیره شده در دیتابیس نگاشت می‌کند تا نتیجه مناسب را پیدا کند.
  4. رتبه‌بندی نتیجه: به محض اینکه موتور اسناد ایندکس را جستجو می‌کند، براساس اهمیت آن‌ها، خروجی‌ها را رتبه‌بندی می‌کند.

 

یکپارچه کردن Solr در ابزارهای دیگر

Solr به عنوان موتور جستجوی داخلی در بسیاری از برنامه‌ها مانند سیستم‌های مدیریت محتوای سازمانی همراه است. توزیع Hadoop در ابزارهایی مانندCloudera ،  Hortonworks و MapR همه بسته‌های Solr را به عنوان موتور جستجوی محصولات خود برای عظیم‌داده به بازار عرضه کرده‌اند. DataStax DSE  این ابزار را به عنوان موتور جستجو با کاساندرا ادغام کرده است. Solr با هر سیستم یا زبان برنامه‌نویسی که از استانداردهای HTTP پشتیبانی می‌کند ادغام می‌شود. برای سهولت استفاده از این ابزار کتابخانه‌های کاربری نیز برای جاوا، C # ، PHP، پایتون، روبی و سایر زبان‌های برنامه‌نویسی محبوب دیگر موجود است.