به‌زودی

Elasticsearch مدیریت‌شده، جست‌وجوی تمام‌متن

Elasticsearch 8 روی سرور اختصاصی در ایران: امنیت و HTTPS از پیش فعال، رمز تصادفی برای کاربر مدیر و حافظهٔ heap تنظیم‌شده بر اساس اندازهٔ سرور. مناسب جست‌وجوی سایت و اپ، autocomplete و تحلیل لاگ؛ به‌زودی قابل سفارش.

Elasticsearch مدیریت‌شده

جست‌وجوی تمام‌متن،به‌زودی

هنوز قابل سفارش نیست

جایگزین امروز: سرور ابری standard از ۲٬۲۰۰ تومان در ساعت؛ نصب و نگه‌داری با خودتان.

  • HTTPS و رمز فعال،  پورت ۹۲۰۰
  • analyzer فارسی،  داخلی خود Elasticsearch
  • Elasticsearch 8،  یک نود

معرفی سرویس

Elasticsearch مدیریت‌شده: جست‌وجوی تمام‌متن برای سایت و اپ

Elasticsearch یک موتور جست‌وجو و تحلیل است که index سریع، جست‌وجوی تمام‌متن، رتبه‌بندی بر اساس ارتباط و تجمیع داده را از طریق REST API فراهم می‌کند. با analyzer داخلی persian، جست‌وجوی فارسی هم با نرمال‌سازی «ي» و «ك» عربی کار می‌کند.

در نسخهٔ مدیریت‌شده، یک سرور اختصاصی با Elasticsearch 8، امنیت و HTTPS فعال و heap تنظیم‌شده تحویل می‌گیرید. این سرویس به‌زودی قابل سفارش می‌شود، در فاز نخست تک‌نودی است و Kibana را شامل نمی‌شود.

امکانات

چه دریافت می‌کنید؟

جست‌وجوی تمام‌متن

رتبه‌بندی بر اساس ارتباط، fuzzy match‏، highlight و پیشنهاد هنگام تایپ از طریق REST API.

analyzer فارسی داخلی

analyzer persian خود Elasticsearch با نرمال‌سازی «ي» و «ك»؛ در mapping انتخابش می‌کنید.

heap تنظیم‌شده

نیمی از RAM تا سقف دو گیگابایت به heap می‌رسد و بقیه برای کش سیستم‌عامل می‌ماند.

aggregation

گروه‌بندی، histogram و شمارش نتایج بر اساس دسته، بدون سرویس جداگانه.

امنیت و HTTPS فعال

امنیت نسخهٔ ۸ از پیش روشن است؛ بدون رمز هیچ درخواستی پذیرفته نمی‌شود.

داده داخل ایران

index و جست‌وجو روی سروری در دیتاسنتر داخل ایران؛ تأخیر کم برای اپلیکیشن‌های داخلی.

تا راه‌اندازی، خودتان روی سرور ابری شروع کنید

روی یک سرور ابری با دست‌کم دو گیگابایت RAM می‌توانید همین حالا Elasticsearch و در صورت نیاز Kibana را نصب کنید و mapping فارسی را آزمایش کنید. اگر موتور متن‌باز را ترجیح می‌دهید، راهنمای نصب OpenSearch قدم‌به‌قدم کمک می‌کند. وقتی نسخهٔ مدیریت‌شده باز شد، index را از منبع اصلی داده دوباره می‌سازید.

راهنمای کامل

راهنمای کامل Elasticsearch مدیریت‌شده در ایران‌کلاد

جست‌وجوی خوب یکی از چیزهایی است که کاربر بلافاصله متوجه کمبودش می‌شود. این راهنما توضیح می‌دهد Elasticsearch مدیریت‌شدهٔ ایران‌کلاد دقیقاً چه چیزی تحویل می‌دهد، جست‌وجوی فارسی را چطور درست تنظیم کنید، تعرفه چقدر است و چه محدودیت‌هایی وجود دارد. اگر هنوز بین دیتابیس‌ها مردد هستید، فهرست دیتابیس‌ها را ببینید.

۱۲ بخش حدود ۷ دقیقه مطالعه

فهرست مطالب

Elasticsearch مدیریت‌شده چیست و چه زمانی در دسترس است؟

Elasticsearch یک موتور جست‌وجو و تحلیل است که متن را به index معکوس تبدیل می‌کند تا جست‌وجو در میان میلیون‌ها سند و رتبه‌بندی نتایج بر اساس میزان ارتباط، سریع انجام شود. ارتباط با آن از طریق REST API و JSON است و تقریباً هر زبان برنامه‌نویسی کلاینت آماده دارد.

در نسخهٔ مدیریت‌شدهٔ ایران‌کلاد، یک سرور اختصاصی فقط برای Elasticsearch شما ساخته می‌شود. نصب نسخهٔ ۸، فعال بودن امنیت و HTTPS، تنظیم حافظهٔ heap بر اساس اندازهٔ سرور، اجرا در حالت تک‌نود و تعیین رمز تصادفی برای کاربر مدیر را ما انجام می‌دهیم و شما مستقیماً سراغ ساخت index و ارسال سند می‌روید.

این سرویس هنوز برای سفارش باز نشده است. سامانهٔ سفارش و صورت‌حساب آماده است، اما پیش از باز شدن، نصب واقعی روی زیرساخت ما آزمایش و تأیید می‌شود. تا آن زمان دکمهٔ ساخت در پنل پیام «به‌زودی» نشان می‌دهد و هیچ مبلغی کسر نمی‌شود.

کاربردهای رایج Elasticsearch

Elasticsearch در جایی می‌درخشد که LIKE در دیتابیس رابطه‌ای کم می‌آورد: غلط تایپی، رتبه‌بندی نتایج، فیلترهای ترکیبی و شمارش نتایج بر اساس دسته. چند نمونه از کاربردهای رایج:

اگر جست‌وجوی شما ساده است و داده کم، شاید full-text search داخلی PostgreSQL مدیریت‌شده کافی باشد و به سرویس جدا نیاز نداشته باشید. برای تحلیل‌های عددی سنگین روی رویدادها هم ClickHouse گزینهٔ مناسب‌تری است.

  • جست‌وجوی محصول در فروشگاه اینترنتی با فیلتر دسته، برند و بازهٔ قیمت
  • جست‌وجوی مقاله و محتوا در سایت خبری، وبلاگ یا پایگاه دانش
  • پیشنهاد هنگام تایپ با completion suggester یا جست‌وجوی پیشوندی
  • تحمل غلط تایپی با fuzzy query برای واژه‌های اشتباه نوشته‌شده
  • جست‌وجو و تجمیع روی لاگ برای پیدا کردن خطاها بر اساس سرویس و زمان
  • جست‌وجوی داخلی سازمان روی اسناد، تیکت‌ها یا سوابق مشتری

بازگشت به فهرست مطالب

جست‌وجوی فارسی را چطور درست تنظیم کنم؟

بزرگ‌ترین مشکل جست‌وجوی فارسی، تفاوت نویسه‌هاست: کاربری «كتاب» را با کاف عربی تایپ می‌کند و متن شما «کتاب» با کاف فارسی است. Elasticsearch یک analyzer داخلی به نام persian دارد که نویسه‌های عربی ي و ك را به معادل فارسی تبدیل می‌کند، برخی نشانه‌ها را حذف و واژه‌های پرتکرار فارسی را کنار می‌گذارد. این analyzer جزو خود Elasticsearch است و ما چیزی به آن اضافه نکرده‌ایم.

analyzer در زمان تعریف mapping انتخاب می‌شود و بعداً روی index موجود قابل تغییر نیست؛ پس پیش از وارد کردن داده، برای فیلدهای متنی فارسی analyzer را persian تعیین کنید. اگر بعداً تغییرش دادید، باید index جدیدی بسازید و داده را دوباره وارد کنید.

نیم‌فاصله هم نکتهٔ مهمی است. «می‌خواهم» با نیم‌فاصله و «میخواهم» بدون آن دو توکن متفاوت‌اند. اگر داده‌هایتان یکدست نیست، یک char_filter سفارشی در تنظیمات index تعریف کنید که نیم‌فاصله را یکسان کند، یا متن را پیش از ارسال در اپلیکیشن نرمال کنید.

بازگشت به فهرست مطالب

نمونهٔ Elasticsearch با چه تنظیماتی تحویل داده می‌شود؟

این‌ها تنظیماتی است که هنگام نصب اعمال می‌شود؛ بقیهٔ پیکربندی همان پیش‌فرض بستهٔ رسمی Elasticsearch 8 است.

تنظیممقدارتوضیح
نسخهElasticsearch 8بستهٔ رسمی، دریافت‌شده از آینهٔ داخلی بسته‌ها
پورت۹۲۰۰ (HTTPS)REST API؛ امنیت نسخهٔ ۸ به‌صورت پیش‌فرض فعال است
discovery.typesingle-nodeاجرای مستقل بدون جست‌وجوی نودهای دیگر
network.host0.0.0.0اتصال از سرور یا سیستم خودتان
heapنیمی از RAM، حداکثر ۲ گیگstandard حدود ۱ گیگ و plus حدود ۲ گیگ
رمز کاربر مدیرتصادفیهنگام نصب با ابزار رسمی بازنشانی رمز ساخته می‌شود

نیم دیگر RAM عمداً برای کش سیستم‌عامل خالی می‌ماند؛ Elasticsearch برای خواندن سریع segment‌های index به همین کش تکیه می‌کند.

بازگشت به فهرست مطالب

تعرفهٔ Elasticsearch مدیریت‌شده

هزینه ساعتی است و از کیف پول کسر می‌شود: قیمت سرور پشتیبان به‌اضافهٔ کارمزد مدیریت. اعداد جدول از همان منبع قیمت‌گذاری سامانهٔ صورت‌حساب خوانده می‌شوند و تعرفهٔ تعریف‌شده برای زمان راه‌اندازی هستند؛ تا روز باز شدن سفارش ممکن است تغییر کنند و مبلغ نهایی پیش از ساخت در پنل نمایش داده می‌شود.

اندازهٔ mini برای Elasticsearch قابل سفارش نیست. اولین ساعت هنگام ساخت کسر می‌شود و با حذف نمونه محاسبه متوقف می‌شود؛ تعهد ماهانه ندارد. معادل ماهانه بر مبنای ۷۳۰ ساعت است. برای مقایسه با سایر سرویس‌ها صفحهٔ قیمت‌گذاری و ماشین‌حساب هزینه را ببینید.

اندازهمنابعساعتی (تومان)تقریبی ماهانه (تومان)
standard۲ هسته، ۲ گیگ RAM، ۴۰ گیگ دیسک۲٬۴۰۰۱٬۷۵۲٬۰۰۰
plus۲ هسته، ۴ گیگ RAM، ۸۰ گیگ دیسک۳٬۷۰۰۲٬۷۰۱٬۰۰۰

بازگشت به فهرست مطالب

کدام اندازه برای index شما کافی است؟

برای جست‌وجوی یک سایت محتوایی یا فروشگاه با چند ده هزار تا چند صد هزار سند، standard معمولاً کافی است. heap حدود یک گیگابایتی برای query‌های معمول جست‌وجو و فیلتر جا دارد و کش سیستم‌عامل بخش پرکاربرد index را در حافظه نگه می‌دارد.

اگر تجمیع‌های سنگین (aggregation) روی فیلدهای پرمقدار دارید، لاگ روزانه وارد می‌کنید یا حجم index از چند گیگابایت بیشتر است، plus با heap حدود دو گیگابایت و ۸۰ گیگابایت دیسک انتخاب امن‌تری است. به خاطر داشته باشید Elasticsearch وقتی دیسک از حدود ۸۵ درصد پر شود، دیگر shard جدید روی آن قرار نمی‌دهد و نزدیک ۹۵ درصد index‌ها را فقط‌خواندنی می‌کند.

تغییر اندازهٔ نمونهٔ موجود در فاز نخست پیش‌بینی نشده است؛ پس اندازه را بر اساس حجم داده و ترافیک جست‌وجوی چند ماه آینده انتخاب کنید.

بازگشت به فهرست مطالب

Elasticsearch مدیریت‌شده یا نصب روی سرور ابری؟

هر دو مسیر درست‌اند و به نیاز شما به کنترل و چند نود بستگی دارد. این جدول تفاوت‌های عملی را نشان می‌دهد:

موضوعElasticsearch مدیریت‌شدهنصب روی سرور ابری
راه‌اندازیساخت از پنل و دریافت اطلاعات اتصالنصب، تنظیم heap و امنیت به‌صورت دستی
تعداد نودیک نودهر تعداد که لازم دارید
Kibana و افزونه‌هانداردهر چه بخواهید نصب می‌کنید
snapshot و تنظیمات سطح سروردر دسترس نیستکامل
امنیت و HTTPSاز پیش فعالپیش‌فرض نسخهٔ ۸، با مدیریت خودتان
مناسب برایجست‌وجوی سایت و اپ بدون درگیری نگه‌داریخوشه، Kibana و تنظیمات خاص

اگر موتور متن‌باز OpenSearch را ترجیح می‌دهید، راهنمای نصب OpenSearch روی سرور ابری هم در دسترس است.

بازگشت به فهرست مطالب

پس از راه‌اندازی، از ساخت تا اولین جست‌وجو

وقتی سفارش Elasticsearch باز شود، مراحل کار این‌طور است:

  1. وارد پنل شوید و بخش پایگاه‌های دادهٔ تحلیلی را باز کنید
  2. Elasticsearch و اندازهٔ standard یا plus را انتخاب و یک نام وارد کنید
  3. چند دقیقه صبر کنید تا نصب تمام و رمز ساخته شود
  4. فایل اطلاعات اتصال را دانلود و با curl روی آدرس https و پورت ۹۲۰۰ اتصال را آزمایش کنید
  5. index را با number_of_replicas برابر صفر و mapping فیلدهای فارسی بسازید
  6. سندها را با Bulk API وارد کنید و جست‌وجو را در اپلیکیشن به کار بگیرید

پیش از ساخت، کیف پول را شارژ کنید؛ هزینهٔ اولین ساعت هنگام ثبت سفارش کسر می‌شود و اگر موجودی کافی نباشد، نمونه ساخته نمی‌شود.

بازگشت به فهرست مطالب

امنیت، کاربران و HTTPS

Elasticsearch 8 با امنیت فعال نصب می‌شود: درخواست بدون نام کاربری و رمز پذیرفته نمی‌شود و ارتباط روی پورت ۹۲۰۰ فقط از طریق HTTPS است. رمز کاربر مدیر هنگام نصب با ابزار رسمی بازنشانی رمز Elasticsearch به یک مقدار تصادفی تغییر می‌کند، رمزنگاری‌شده در پنل نگه‌داری می‌شود و از طریق فایل اطلاعات اتصال در دسترس شماست.

گواهی HTTPS را خود Elasticsearch هنگام نصب می‌سازد و از مرجع عمومی صادر نشده است. در محیط تولید، گواهی را یک‌بار از سرور بگیرید و در کلاینت به‌عنوان گواهی مورد اعتماد معرفی کنید؛ غیرفعال کردن کامل بررسی گواهی را فقط برای آزمایش استفاده کنید.

برای اپلیکیشن از کاربر مدیر استفاده نکنید. با Security API می‌توانید نقشی با دسترسی فقط به index‌های همان اپلیکیشن بسازید یا یک API key محدود صادر کنید. برای بررسی باز بودن پورت از شبکهٔ خودتان از ابزار بررسی پورت و برای بررسی گواهی از تست SSL کمک بگیرید.

بازگشت به فهرست مطالب

بکاپ index و بازسازی داده

برای پایگاه‌های دادهٔ تحلیلی، از جمله Elasticsearch، بکاپ خودکار ارائه نمی‌شود. ثبت مخزن snapshot هم به تنظیمات سطح سرور نیاز دارد که در این سرویس در دسترس شما نیست؛ پس باید از ابتدا برای بازسازی داده برنامه داشته باشید.

بهترین الگو این است که Elasticsearch منبع اصلی داده نباشد. محصولات، مقالات یا کاربران در دیتابیس اصلی مثل MySQL یا PostgreSQL می‌مانند و یک اسکریپت یا worker آن‌ها را در Elasticsearch index می‌کند. در این حالت اگر index از دست برود، با اجرای دوبارهٔ همان اسکریپت ساخته می‌شود.

اگر دادهٔ منحصربه‌فردی در Elasticsearch دارید، مثل لاگ‌هایی که جای دیگری نیست، با ابزارهایی مثل elasticdump یا ترکیب scroll و Bulk API به‌صورت دوره‌ای خروجی JSON بگیرید و آن را در فضای ذخیره‌سازی ابری نگه دارید.

بازگشت به فهرست مطالب

انتقال index از سرور یا سرویس دیگر

ساده‌ترین روش انتقال، بازسازی index از منبع اصلی داده است: mapping را روی نمونهٔ جدید بسازید و اسکریپت indexسازی اپلیکیشن را این بار به آدرس جدید اشاره دهید. این روش به نسخهٔ Elasticsearch مبدأ وابسته نیست و فرصت خوبی برای اصلاح mapping و analyzer فارسی هم هست.

اگر منبع جداگانه‌ای ندارید، با elasticdump ابتدا mapping و سپس داده را از مبدأ بخوانید و در مقصد بنویسید. reindex از راه دور به تنظیم سطح سرور نیاز دارد و در این سرویس در دسترس نیست. اگر مبدأ نسخهٔ ۶ یا ۷ است، نوع‌های حذف‌شده و تغییرات mapping را پیش از انتقال بررسی کنید.

بازگشت به فهرست مطالب

محدودیت‌های فاز نخست

نمونهٔ Elasticsearch تک‌نودی است؛ replica روی نود دیگر، تحمل خرابی و توزیع shard بین چند نود ارائه نمی‌شود. اگر سرور میزبان برای نگه‌داری یا خرابی از دسترس خارج شود، جست‌وجو هم تا بازگشت آن کار نمی‌کند؛ اپلیکیشن را طوری بنویسید که در این حالت به جست‌وجوی ساده‌تر در دیتابیس اصلی برگردد.

Kibana‏، snapshot، نصب افزونه و دسترسی به فایل‌های پیکربندی در این سرویس وجود ندارد و بکاپ خودکار ارائه نمی‌شود. اندازهٔ mini قابل سفارش نیست و heap حداکثر دو گیگابایت است. اگر به چند نود یا تنظیمات خاص نیاز دارید، Elasticsearch را روی سرور ابری خودتان نصب کنید.

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۱ پرسش

سؤالات متداول

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

Elasticsearch برای چه کاربردهایی مناسب است؟
جست‌وجوی تمام‌متن در سایت یا اپ (محصولات، مقالات، کاربران)، پیشنهاد هنگام تایپ، فیلتر و شمارش نتایج بر اساس دسته و قیمت، و جست‌وجو و تجمیع روی لاگ‌ها؛ هر جا که جست‌وجوی سریع با رتبه‌بندی بر اساس میزان ارتباط روی حجم بالای متن لازم دارید.
آیا جست‌وجوی فارسی پشتیبانی می‌شود؟
بله، با امکانات خود Elasticsearch: analyzer داخلی persian که نویسه‌های عربی مثل «ي» و «ك» را به معادل فارسی نرمال می‌کند و کلمات پرتکرار را کنار می‌گذارد. این analyzer را باید هنگام تعریف mapping برای فیلدهای متنی انتخاب کنید؛ ما analyzer سفارشی اضافه‌ای از پیش نصب نمی‌کنیم.
چطور راه‌اندازی می‌شود؟
پس از باز شدن سفارش، از بخش پایگاه‌های دادهٔ تحلیلی در پنل، Elasticsearch و اندازهٔ standard یا plus را انتخاب می‌کنید و ظرف چند دقیقه فایل اطلاعات اتصال آماده است. این سرویس هنوز فعال نیست؛ تا آن زمان می‌توانید Elasticsearch را خودتان روی یک سرور ابری نصب کنید.
هزینه چگونه محاسبه می‌شود؟
ساعتی و از کیف پول: قیمت سرور با اندازهٔ standard یا plus به‌اضافهٔ کارمزد مدیریت. Kibana جزو این سرویس نیست و هزینه‌ای برای آن محاسبه نمی‌شود. مبلغ نهایی پیش از ساخت در پنل نمایش داده می‌شود.
Elasticsearch ایران‌کلاد چه زمانی قابل سفارش می‌شود؟
تاریخ قطعی اعلام نشده است. سامانهٔ سفارش و صورت‌حساب آماده است و پیش از باز شدن، نصب واقعی روی زیرساخت ما آزمایش می‌شود. تا آن زمان دکمهٔ ساخت در پنل پیام «به‌زودی» نشان می‌دهد و مبلغی کسر نمی‌شود.
Kibana هم همراه سرویس ارائه می‌شود؟
خیر. سرویس فقط شامل Elasticsearch روی پورت ۹۲۰۰ است. اگر Kibana لازم دارید، می‌توانید آن را روی سرور ابری خودتان نصب و به این نمونه وصل کنید؛ برای بیشتر کاربردهای جست‌وجوی سایت، به Kibana نیازی نیست و REST API کافی است.
چرا اندازهٔ mini برای Elasticsearch ارائه نمی‌شود؟
Elasticsearch روی Java اجرا می‌شود و نیمی از RAM را به heap اختصاص می‌دهیم. روی یک گیگابایت RAM‏، heap و کش سیستم‌عامل هر دو کم می‌آیند و سرویس هنگام شروع با کمبود حافظه متوقف می‌شود؛ به همین دلیل سامانهٔ سفارش کمتر از standard را نمی‌پذیرد.
اتصال HTTPS است؟ گواهی آن معتبر است؟
بله، Elasticsearch 8 با امنیت فعال نصب می‌شود و پورت ۹۲۰۰ فقط HTTPS می‌پذیرد. گواهی را خود Elasticsearch هنگام نصب می‌سازد و از یک مرجع عمومی صادر نشده است؛ پس در کلاینت باید گواهی را معتبر بشناسید یا در محیط آزمایش بررسی گواهی را غیرفعال کنید.
آیا از index‌ها بکاپ خودکار گرفته می‌شود؟
خیر. برای پایگاه‌های دادهٔ تحلیلی بکاپ خودکار ارائه نمی‌شود. توصیهٔ ما این است که دادهٔ اصلی در دیتابیس اپلیکیشن بماند و Elasticsearch به‌عنوان index قابل بازسازی استفاده شود؛ برای خروجی گرفتن هم ابزارهایی مثل elasticdump کار می‌کنند.
چرا وضعیت خوشه پس از ساخت index زرد است؟
چون نمونه تک‌نودی است و Elasticsearch به‌طور پیش‌فرض برای هر index یک replica می‌خواهد که روی همان نود قرار نمی‌گیرد. هنگام ساخت index مقدار number_of_replicas را صفر بگذارید تا وضعیت سبز شود؛ این روی داده یا جست‌وجو اثری ندارد.
تا زمان راه‌اندازی چطور Elasticsearch را امتحان کنم؟
Elasticsearch 8 را روی یک سرور ابری با دست‌کم دو گیگابایت RAM نصب کنید و mapping و query‌های جست‌وجو را همان‌جا آزمایش کنید. اگر موتور متن‌باز OpenSearch را ترجیح می‌دهید، راهنمای نصب آن هم در دسترس است.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

Elasticsearch مدیریت‌شده به‌زودی

تا باز شدن سفارش، Elasticsearch را روی یک سرور ابری با دست‌کم دو گیگابایت RAM نصب کنید و mapping فارسی را آزمایش کنید؛ بعداً index را از منبع اصلی داده روی نسخهٔ مدیریت‌شده می‌سازید.