Elasticsearch چیست؟
موتور جستوجو و تحلیل توزیعشده، بهینه برای جستوجوی متنی سریع، فیلتر پیچیده و تحلیل حجم بالای داده لاگ/رویداد.
چرا مهم است؟
SQL برای جستوجوی متنی پیشرفته (مثل تحمل غلط املایی، رتبهبندی نتیجه بر اساس ارتباط) طراحی نشده؛ Elasticsearch دقیقاً همین مسئله را با Index معکوس حل میکند و پایه بسیاری از سیستمهای جستوجو و مانیتورینگ (ELK Stack) است.
تعریف
Elasticsearch یک موتور جستوجوی توزیعشده مبتنی بر Lucene است که داده را در Indexهای معکوس (Inverted Index) ذخیره میکند تا جستوجوی متنی روی حجم بالای داده در چند میلیثانیه انجام شود.
مثال Query
GET /products/_search
{
"query": {
"match": { "name": "لپتاپ گیمینگ" }
}
}
برخلاف LIKE '%...%' در SQL که روی متن بزرگ کند است، Index معکوس Elasticsearch از قبل کلمات را به سند مرتبط نگاشت کرده و نتیجه را بر اساس امتیاز ارتباط (Relevance Score) برمیگرداند.
کاربردهای رایج
- جستوجوی محصول در فروشگاه آنلاین (با تحمل غلط تایپی، مترادف).
- تحلیل و جستوجوی لاگهای سیستم (ELK Stack: Elasticsearch + Logstash + Kibana).
- Autocomplete و پیشنهاد جستوجو.
اشتباه رایج
❌ استفاده از Elasticsearch بهعنوان دیتابیس اصلی و تنها منبع حقیقت داده تراکنشی — طراحی آن برای جستوجو و تحلیل است، نه تراکنش ACID؛ معمولاً کنار یک دیتابیس اصلی و بهصورت همگام (Sync) استفاده میشود.
منبع و مطالعه بیشتر
خلاصه
Elasticsearch با Index معکوس جستوجوی متنی سریع و رتبهبندیشده روی حجم بالای داده فراهم میکند. بهترین کاربرد آن جستوجو و تحلیل لاگ است، نه جایگزینی دیتابیس تراکنشی اصلی. مرجع کامل: مستندات رسمی Elastic.
