موضوع مقاله: الستیک‌سرچ | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # الستیک‌سرچ | مقدمه: الستیک‌سرچ موتور جستجو برپایه کتابخانه لوسین است که امکان توزیع‌پذیری چندمستأجری با قابلیت جستجوی تمام متن با موتور پروتکل انتقال ابرمتن و واسط وب بدون JSON دارد. | ## بخش 1: الستیک‌سرچ | برپایه طرح تجاری هسته‌باز، بخشی از نرم‌افزار تحت تعدادی از مجوزهای آزاد قرار دارد که اکثراً مجوز آپاچی هستند و بخش‌های دیگر تحت مالکیت هستند و کد شامل شرایط نرم‌افزار کد موجود، مجوز الستیک‌سرچ هستند. کلاینت‌های رسمی در زبان‌های جاوا، دات‌نت (سی شارپ)، پی‌اچ‌پی، پایتون، گرووی، روبی و بسیاری از زبان‌های دیگر موجودند. بر اساس رتبه‌بندی‌های رسمی، الستیک‌سرچ پرطرفدارترین موتور جستجوی تجاری است که بعد از آن Apache Solr برپایه کتابخانه لوسین قرار دارد. شای در وقت آزاد خود شروع به نوشتن یک موتور جستجو برای دستورهای آشپزی همسرش کرد و همین باعث شد قصهٔ او رقم بخورد. لاگ استش یک ابزار برای ارسال لاگ‌ها به انبار داده کاربر بود که یکی از این انبارهای داده الاستیک سرچ بود. او همچنین مشغول توسعه یک رابط کاربری برای مشاهدهٔ لاگ‌های ارسالی بود اما چندان تعریفی نداشت. شای، جردن و رشید مدتی بود که یکدیگر را می‌شناختند و نهایتاً تصمیم گرفتند تا به هم ملحق شوند. الستیک‌سرچ توزیع شده‌است، به این معنی که ایندکس‌ها را می‌تواند به قطعات تقسیم کرند و هر یک می‌تواند صفر یا بیشتر کپی داشته باشد. هر گره میزبان یک یا چند تکه دیگر است و به عنوان یک هماهنگ‌کننده برای محول کردن عملیات به قطعه(ها) درست عمل می‌کند. | ## بخش 2: الستیک‌سرچ | به عنوان مثال ممکن است ورودی آن برخی از متغیرهای مربوط به وضعیت یک سامانه مانند فرکانس پردازنده، وضعیت حافظهٔ اصلی، دیسک و مواردی از این دست باشد، یا این که ورودی آن مجموعه‌ای از داده‌های متنی یا مجوعه‌ای از لاگ‌های یک سامانه باشد. به دلیل گسترهٔ وسیع داده‌هایی که استیک‌سرچ پشتیبانی می‌کند و همچنین توانایی ایندکس کردن انواع مختلف داده، از آن در موارد زیر استفاده می‌شود: جستجو در برنامه‌ها جستجو در وبسایت‌ها جمع‌آوری و تحلیل لاگ نظارت بر وضعیت و متغیرهای زیرساخت‌ها نظارت بر عملکرد کانتینرها نظارت بر سطح عملکرد برنامه‌ها تحلیل داده‌های جغرافیای تحلیل داده‌های مرتبط با امنیت تحلیل داده‌های مرتبط با کسب‌وکارها مصورسازی داده‌ها الستیک‌سرچ در کنار مجموعه داده و موتور تجزیه سیاهه بنام Logstash، تجزیه و تحلیل و پلتفرم بصری به نام Kibana و Beats، مجموعه‌ای از حاملان اطلاعات سبک توسعه داده می‌شود. این چهار محصول به عنوان یک راه‌حل یکپارچه طراحی شده‌اند که آن را «الستیک استک» می‌نامند. الستیک‌سرچ از کتابخانهٔ اوسین استفاده می‌کند و سعی می‌کند تمام ویژگی‌های خود را از طریق API در دسترس قرار دهد. ویژگی «گیت» یا «دروازه» تداوم طولانی‌مدت ایندکس را بررسی می‌کند؛ به عنوان مثال، یک ایندکس را می‌توان از گیت رویداد خاموش شدن سرور تهیه کرد. در ۲۰ می ۲۰۱۹ ویژگی‌های امنیتی اصلی الستیک استک در دسترس قرار گرفت، که شامل ارتباطات رمز شده، ایجاد و مدیریت کاربران، و کنترل دسترسی کاربر به APIها و ایندکس‌ها است. آنالیز متن آنالیز متن به الاستیک سرچ این قابلیت را می‌دهد که علاوه بر جستجوی دقیق عبارت، عبارات مرتبط با عبارت وارد شده که احتمالاً مورد نظر کاربرد بوده را نیز پیدا کند. در حالت عادی زمانی که یک عبارت مرکب مانند fox jumps جستجو می‌شود، جمله‌ای که متشکل از اجزای این عبارت باشد شناسایی نمی‌شود؛ برای حل این مشکل، عبارات به بخش‌های کوچکتری به نام توکن (token) تجزیه می‌شوند و توکن‌ها جستجو می‌شوند. علاوه بر شکستن عبارات به توکن‌ها، یک مرحلهٔ دیگر به نام نرمال‌سازی انجام می‌گیرد. | ## بخش 3: الستیک‌سرچ | نرمال‌سازی شامل مراحل متفاوتی است مانند: تبدیل تمام عبارات به حروف کوچک تغییر توکن‌ها به توکن ریشه (مانند تغییر کلمات جمع به مفرد) جایگزین توکن‌های هم‌معنی به توکن رایج به‌طور کلی آنالیزگرها (analyzer) عملیات آنالیز متن را انجام می‌دهند. الاستیک سرچ از یک آنالیزگر استاندارد استفاده می‌کند که پاسخ اغلب نیازهای روزمره را می‌دهد اما می‌تواند از یک آنالیزگر دلخواه استفاده کند تا پاسخ نیازهای خاص‌تر و متفاوت‌تری را بدهد. کلیدواژه‌های الستیک‌سرچ در الستیک‌سرچ کلیدواژه‌هایی وجود دارد که متناظری تقریبی با برخی کلیدواژه‌های پایگاه‌داده‌های رابطه‌ای است. نصب این دو راه‌های مختلفی دارد ولی راهی که اینجا بررسی می‌شود دانلود فایل‌های نصبی با پسوند deb. اگر در مرورگرتان آدرس زیر را وارد کنید، محیط کیبانا بالا می‌آید.localhost:5601بعد از وارد کردن آدرس بالا باید محیطی شبیه به تصویر روبرو را مشاهده کنید. کنسول سمت چپ، محلی است برای نوشتن کوئری‌ها و سمت راست، محلی برای نمایش پاسخ سرور الستیک‌سرچ. برای وارد کردن اطلاعات در الستیک نیازی به ایجاد دیتابیس نیست (برخلاف پایگاه‌داده‌های رابطه‌ای). همان کوئری‌ای که برای ایجاد آن استفاده کردیم، بعد از تغییرات دلخواه دوباره وارد کنیم. | ## جمع‌بندی | فایده روش دوم این است که دیگر نیاز نیست برای بروزرسانی چند فیلد مستند، کل مستند را بنویسیم و در کوئری وارد کنیم.