سالها پیش یک برنامهنویس جوان بیکار به نام Shay Banon که به تازگی ازدواج کرده بود، به همراه همسرش به لندن سفر میکنه، شهری که همسرش در اونجا مشغول یادگیری آشپزی بود. در حالیکه دنبال کاری برای خودش میگشت، شروع کرد به ور رفتن با یکی از نسخههای اولیه Lucene تا بتونه به کمکش یک موتور جستجوی دستورات پخت غذا برای همسرش بسازه. اینجا بود که متوجه شد کار کردن با Lucene چه قدر سخته و شروع کرد به نوشتن یک لایه انتزاعی که به برنامهنویسان جاوا این امکان رو میداد جستوجو رو به برنامههاشون اضافه کنن. این پروژه با نام "قطب نما" به صورت متنباز منتشر شد.
مدتی بعد آقای Banon شغلی رو قبول کرد که با سیستمهای توزیعشده سر و کار داشت و باعث شد فکر ایجاد یک موتور جستوجوی توزیعشده با کارآیی بالا به ذهنش برسه. و اینجوری شد که با بازنویسی کدهایی که قبلا در قطب نما نوشته بود یک سرور مستقل به نام Elasticsearch رو ایجاد کرد. از اون موقع به بعد Elasticsearch یکی از پرطرفدارترین پروژهها روی گیتهاب شد، صدها نفر برای مشارکت در توسعه این موتور جستوجو داوطلب شدند و یک شرکت برای پشتیبانی تجاریش شکل گرفت.
به طور خلاصه Elasticsearch یک موتور جستوجوی متن باز هست که به زبان جاوا نوشته شده و برای جستوجو از کتابخانه معروف Lucene استفاده میکنه، با این تفاوت که تلاش میکنه پیچیدگیهای Lucene رو پشت یک RESTful API ساده و منسجم پنهان کنه. البته امکانات Elasticsearch به کتابخانه Lucene محدود نمیشن و فراتر از یک موتور جستوجوی مبتنی بر متن هست. در این مجموعه آموزش تلاش میکنم تا در هر بخش به یکی از ویژگیهای این موتور جستوجوی قدرتمند بپردازم. در این نوشته خواستم یک دید کلی بهتون بدم که Elasticsearch چیه و در بخش بعدی سعی میکنم به نصب و راه اندازیش بپردازم.