elasticsearch یا الاستیک سرچ چیست ؟
الاستیک سرچ چیست ؟ عباراتی مانند ایندکس، موتور جستجو ، پایگاه داده تحلیلی، راه حل کلان داده و… مجموعه عباراتی هستند که در زمان آشنایی با پایگاه داده الاستیک با آن مواجه میشوید. بسته به سطح آشنایی شما با این فناوری، این پاسخها ممکن است به شما کمککننده باشد. تمامی عبارتهای بالا در مورد اینکه elasticsearch چیست میتوانند صادق باشند و این موضوع، بخش مهمی از جذابیت Elasticsearch است.
در طول سالها، Elasticsearch و دیگر اجزای آن که با نام «Elastic Stack» رشد کردهاند، برای موارد متعددی مورد استفاده قرار میگیرند. مواردی مانند جستجو در یک وبسایت، جمعآوری و تجزیه و تحلیل دادهها و یا حتی هوش تجاری. ما در این پست با درک اینکه الاستیک سرچ چیست ، به این سوال پاسخ میدهیم که کاربرد elasticsearch چیست و چگونه میتوان از آن استفاده کرد؛ با ما همراه باشید.
الاستیک سرچ چیست ؟
elastic search یکی از ابزارهای ابتدایی elk است. به طورکلی ELK Stack مجموعهای از سه محصول منبع باز Elasticsearch، Logstash و Kibana بوده که همگی توسط Elastic توسعه، مدیریت و نگهداری میشوند. شما برای اینکه بتوانید درک بهتری از مفهوم الستیک سرچ داشته باشید باید از مفهوم ابتدایی آن یعنی ELK Stack شناخت درستی داشته باشید. به همین منظور پیشنهاد میکنیم مقالهی elk چیست را از دست ندهید.
برای درک بهتر معنا و مفهوم پایگاه داده elasticsearch ، آن را به عنوان سروری در نظر بگیرید که میتواند درخواستهای JSON را پردازش و دادههای JSON را به شما بازگرداند.
به عبارتی دیگر Elasticsearch یک موتور جستجو و تجزیه و تحلیل opensurce است که بر روی آپاچی لوسن ساخته و در جاوا توسعه یافته است. الستیک سرچ دیتابیس به شما امکان میدهد، حجم عظیمی از دادهها را به سرعت ذخیره، جستجو و تجزیهوتحلیل کرده و در چند میلی ثانیه پاسخ دهید.
علاوه بر آن، این موتور جستجو از ساختاری مبتنی بر اسناد به جای جداول استفاده کرده و از API REST برای ذخیره و جستجوی دادهها بهره میگیرد.
نحوه کار elasticsearch چیست ؟
برای درک بهتر نحوه کار الستیک سرچ ، بهتر است برخی از مفاهیم اساسی در مورد نحوه سازماندهی دادهها و اجزای آن را توضیح دهیم؛ با ما همراه باشید.
آشنایی با سند (Document)
اسناد واحد اصلی اطلاعاتی هستند که میتوانند در Elasticsearch ایندکس شوند. این درحالیست که این اطلاعات در JSON به عنوان expressed (فرمت جهانی تبادل دادههای اینترنتی) در نظر گرفته میشوند. با استفاده از الستیک سرچ دیتابیس ، شما میتوانید سندی را مانند ردیفی در یک پایگاه داده رابطهای در نظر بگیرید که یک موجودیت معین را نشان میدهد.
علاوه بر تمام اینها، در Elasticsearch، یک سند میتواند چیزی بیش از یک متن باشد؛ به عبارتی چیزی بیش از هر داده ساختار یافتهای که در JSON کدگذاری شده است. این دادهها میتوانند اعداد، رشتهها و تاریخها را شامی شوند. همانطور که میدانید هر سند دارای یک شناسه منحصر بفرد و یک نوع داده خاص است که ویژگیهای آن را نشان میدهد.
منظور از Indices در الاستیک سرچ چیست ؟
index مجموعهای از اسناد است که ویژگیهای مشابهی دارند. ایندکس بالاترین سطحی است که میتوانید در Elasticsearch جستجو کنید. پیشنهاد میکنیم ایندکس را شبیه به یک پایگاه داده در نظر بگیرید که در آن، هر سندی در یک فهرست مرتبط است.
به عنوان مثال، در زمینه یک وب سایت تجارت الکترونیک، می توانید یک فهرست برای مشتریان، یکی برای محصولات، یکی برای سفارشات و غیره داشته باشید. یک نمایه با نامی شناسایی می شود که برای اشاره به نمایه هنگام انجام عملیات نمایه سازی، جستجو، به روز رسانی و حذف در برابر اسناد موجود در آن استفاده می شود.
Inverted Index چیست؟
امیدواریم که تا به اینجای کار با پاسخ پرسش خود مبنی بر اینکه elasticsearch چیست آشنا شده باشید. حال میخواهیم در مورد مفهوم Inverted Index صحبت کنیم.
ایندکس در Elasticsearch در واقع همان چیزی است که به آن شاخص معکوس میگویند. مکانیزمی که تمامی موتورهای جستجو با کمک آن کار میکنند. این یک ساختار داده ای است که نقشه برداری از محتوا، مانند کلمات یا اعداد، به مکان های آن در یک سند یا مجموعه ای از اسناد را ذخیره می کند.
Inverted Index یک ساختار داده مانند نقشه است که شما را از یک کلمه به یک سند هدایت میکند. یک فهرست معکوس، رشتهها را مستقیماً ذخیره نمیکند و در عوض هر سند را به عبارات جستجوی جداگانه (یعنی هر کلمه) تقسیم میکند. سپس هر عبارت جستجو را به اسنادی نگاشت میکند که آن عبارات جستجو در آنها وجود دارد. با استفاده از Inverted Index ، الستیک سرچ دیتابیس به سرعت بهترین تطابقها را حتی از مجموعه دادههای بسیار بزرگ پیدا میکند.
منظور از خوشه (Cluster) در الاستیک سرچ چیست ؟
یک خوشه مجموعهای از یک یا چند گره یا همان سرور است که با هم کار میکنند. خوشه تمامی دادهها را نگه داشته و امکان جستجوی آسان را در تمام گرهها فراهم میکند. علاوه بر آن، موجب کنترل آسان اطلاعات برای هر گره میشود. همانند گره، یک خوشه نیز با نام منحصر به فردی مشخص میشود که به طور پیشفرض، نامش “elasticsearch” است.
به یاد داشته باشید که برای اتصال چند گره به یک خوشه از نام خوشه استفاده میشود و به همین دلیل است که نام خوشه بسیار حائز اهمیت است.
گره (Node)
گره یک سرور واحد است که خود، بخشی از یک کلاستر محسوب میشود. یک گره دادهها را ذخیره کرده و در نمایهسازی و قابلیتهای جستجوی خوشه شرکت میدهد. یک گره Elasticsearch را میتوان به روش های مختلفی پیکربندی کرد:
Master Node: کلاستر، Elasticsearch را کنترل میکند و مسئول تمام عملیاتهای cluster مانند ایجاد یا حذف یک فهرست، افزودن یا حذف گرهها است.
Data Node: دادهها را ذخیره میکند و عملیات مربوط به داده مانند جستجو را اجرایی میسازد.
Client Node: درخواستهای cluster را به گره اصلی و درخواستهای مربوط به دادهها را به گرههای داده ارسال مینماید.
منطور از Shards در الاستیک سرچ چیست ؟
Elasticsearch به شما امکان میدهد که شاخص را به چند قطعه به نام خرده تقسیم کنید. هر خرده به خودی خود یک “شاخص” کاملاً کاربردی و مستقل است که میتواند بر روی هر گرهای در یک خوشه میزبانی شود. Elasticsearch با توزیع اسناد در یک ایندکس در میان چندین قطعه، و توزیع آن خردهها در چندین گره، میتواند از افزونگی اطمینان حاصل کند؛ که هم از خرابیهای سختافزاری محافظت میکند و هم ظرفیت جستجو را با اضافه شدن گرهها به یک خوشه افزایش میدهد.
Replicas چیست؟
Elasticsearch به شما امکان میدهد که یک یا چند کپی از ایندکس خود بگیرید. Replica ها کپیهای اضافی از دادههای شما را برای محافظت در برابر خرابی سختافزار و افزایش ظرفیت برای ارائه درخواستهای خواندن مانند جستجو یا بازیابی یک سند ارائه میدهند.
موارد استفاده از الاستیک سرچ چیست ؟
اکنون که درک کلی از الستیک سرچ ، مفاهیم و معماری آن داریم، لازم است تا برخی از موارد استفاده اولیهی آن را نیز بررسی کنیم.
Application search
برای برنامههایی که برای دسترسی، بازیابی و گزارش دادهها به شدت به یک پلتفرم جستجو متکی هستند.
Website search
وبسایتهایی که محتوای زیادی را ذخیره می کنند، Elasticsearch را ابزاری بسیار مفید برای جستجوی مؤثر و دقیق میدانند.
Enterprise search
Elasticsearch جستجوی محصول تجارت الکترونیک، جستجوی وبلاگ، جستجوی افراد و هر شکلی از جستجو که فکرش را بکنید. در واقع، به طور پیوسته به راه حل های جستجوی اکثر وب سایت های محبوبی که ما روزانه استفاده می کنیم نفوذ کرده و جایگزین شده است. از دیدگاه سازمانی خاص تر، Elasticsearch برای موفقیت بزرگ در شبکه های داخلی شرکت استفاده می شود.
Logging and log analytics
Elasticsearch معمولاً برای دریافت و تجزیه و تحلیل داده های گزارش در زمان واقعی و به روشی مقیاس پذیر استفاده می شود. همچنین بینش های عملیاتی مهمی را در مورد معیارهای گزارش برای هدایت اقدامات ارائه می دهد.
Infrastructure metrics and container monitoring
بسیاری از شرکت ها از ELK برای تجزیه و تحلیل معیارهای مختلف استفاده می کنند. این ممکن است شامل جمعآوری دادهها در چندین پارامتر باشد که بسته به موارد استفاده متفاوت است.
Security analytics
یکی دیگر از کاربردهای اصلی تحلیلی Elasticsearch، تجزیه و تحلیل امنیتی است. گزارشهای دسترسی و گزارشهای مشابه در مورد امنیت سیستم را میتوان با ELK تجزیه و تحلیل کرد و تصویر کاملتری از آنچه در سیستمهای شما در زمان واقعی میگذرد ارائه میدهد.
Business analytics
بسیاری از ویژگیهای داخلی موجود در ELK Stack، آن را به عنوان یک ابزار تجزیه و تحلیل کسب و کار، گزینه خوبی می کند. با این حال، منحنی یادگیری تند برای پیاده سازی این محصول و در اکثر سازمان ها وجود دارد. این امر به ویژه در مواردی که شرکتها علاوه بر Elasticsearch دارای چندین منبع داده هستند خوب است