Elasticsearch (اختیاری)
مقدمه
در این فاز با موتور جستجوی Elasticsearch و نحوهی کار کردن با آن آشنا میشوید.
Elasticsearch چیست؟
در سالهای اخیر با توجه به رشد روزافزون خدمات مبتنی بر نرمافزار و تولید مقادیر زیادی داده، امکان جستجو در این دادهها اهمیت فوقالعادهای پیدا کرده است. همچنین علاوه بر دادههایی که مربوط به فعالیت کاربران در بسترهای مجازی است، خود سیستمهای نرمافزاری مقادیر زیادی log تولید میکنند که امکان جستجو در آن ها میتواند کار را برای مدیران سیستم و توسعهدهندگان بسیار سادهتر کند. در هر محصول نرمافزاری به احتمال قوی کاربر به امکان جستجو نیاز دارد که برای ایجاد این امکان میتوان از موتورهای جستجو استفاده کرد. محصولات متفاوتی در این حوزه وجود دارند که در حال حاضر معروفترین و محبوبترین آنها Elasticsearch نام دارد.
Elasticsearch یک موتور جستجوی Full-text است که به طور متنباز توسعه داده میشود. این محصول به کاربران این امکان را میدهد که در تعداد زیادی سند متنی جستجو کنند. این موتور جستجو توسط بسیاری از شرکتهای نرمافزاری دنیا مورد استفاده قرار گرفته است. همچنین در محبوبیت آن همین بس که در github بیش از 60هزار ستاره دریافت کرده است. این موتور جستجو کاربردهای فراوانی در حوزههای مختلف دارد که از این کاربردها میتوان به امکان ارائهی جستجو در محصولات نرمافزاری و جمعآوری و تحلیل logهای سیستمهای نرمافزاری اشاره کرد.
علاوه بر خود Elasticsearch چندین محصول دیگر به عنوان Elastic Stack نیز وجود دارند که از مهمترین آنها میتوان به Kibana، Logstash و APM اشاره کرد.
-
Kibana
این محصول امکان مدیریت کلاستر Elasticsearch و Visualize کردن دادهها در داشبوردها و نمودارهای مختلف را به مدیر سیستم میدهد.
-
Logstash
با این محصول میتوان Logهای س یستم را جمعآوری کرد که در ادامه بتوان راحتتر آنها را مورد تحلیل و بررسی قرار داد.
-
APM (Application Performance Monitoring)
این محصول به ایجادکنندگان نرمافزار این امکان را میدهد تا نرمافزار خود را از نظر کارایی مورد نظارت قرار دهند به این صورت که میتوانند زمانی که صرف هر یک از قسمتهای نرمافزار و یا فراخوانی هر یک از توابع شده است را اندازهگیری کنند و متوجه گلوگاههای سیستم شوند.
Elasticsearch کمی عمیقتر
برای آشنایی با موتور جستجوی Elasticsearch مطالعهی «What is Elasticsearch» مفید است.
شما در ابتدا، جستجو در اسناد متنی را به وسیلهی Inverted Index پیادهسازی کردید. موتور جستجوی Elasticsearch نیز قابلیتی مشابه پروژهی شما ارائه میدهد. این قابلیت شامل index کردن اسناد متنی و سپس جستجو در آنها میشود که البته امکانات بسیار پیشرفتهتری را نیز در بر دارد که در ادامه برخی از آنها را ذکر میکنیم: