مفاهیم اصلی: Index، Document، Field، Shard، Replica
برای استفاده بهینه از Elasticsearch، لازم است مفاهیم کلیدی آن را به خوبی درک کنیم. این مفاهیم پایهای، اساس طراحی و عملکرد Elasticsearch را تشکیل میدهند:
Index
ایندکس مشابه یک پایگاه داده در دنیای دیتابیسهای سنتی است. هر ایندکس مجموعهای از اسناد مشابه را نگهداری میکند و دارای یک نام منحصربهفرد است. برای مثال، اگر یک وبسایت فروشگاهی دارید، میتوانید یک ایندکس برای محصولات و یک ایندکس جداگانه برای کاربران ایجاد کنید.
# مثال JSON سند برای ایندکس محصولات
{
"product_id": 101,
"name": "Laptop",
"price": 2500
}
Document
سند واحد اصلی داده در Elasticsearch است و به شکل JSON ذخیره میشود. هر سند شامل فیلدها و مقادیر مربوط به آنها است. به طور ساده، هر ردیف در دیتابیس سنتی معادل یک سند در Elasticsearch است.
Field
فیلدها ستونهای یک سند هستند و هر فیلد میتواند نوع داده متفاوتی داشته باشد، مانند متن، عدد، تاریخ یا بولین. برای مثال:
{
"name": "Laptop",
"price": 2500,
"available": true,
"created_at": "2025-09-16"
}
Shard
برای مدیریت دادههای حجیم و افزایش سرعت جستجو، هر ایندکس به بخشهای کوچکتر به نام شارد تقسیم میشود. شاردها میتوانند روی چند نود مختلف قرار بگیرند و بار کاری بین سرورها تقسیم شود. این تقسیمبندی باعث میشود حتی با افزایش حجم داده، سرعت جستجو کاهش نیابد.
Index | Shards | توضیح |
---|---|---|
Products | 5 | این ایندکس به 5 شارد تقسیم شده تا دادهها بین نودها پخش شوند. |
Users | 3 | این ایندکس به 3 شارد تقسیم شده است. |
Replica
نسخههای کپی شده از شاردها برای افزایش تحمل خطا و دسترسی سریعتر استفاده میشوند. اگر یک نود دچار مشکل شود، replicaها امکان ادامه کار را بدون اختلال فراهم میکنند.
# مثال فرضی
هر شارد اصلی (Primary Shard) = 1
تعداد Replica Shard = 1
تعداد کل شاردها در نودها = 2 شارد برای هر شارد اصلی
با درک دقیق Index، Document، Field، Shard و Replica میتوانید ساختار دادهها را بهینه کنید و جستجوهای سریع و قابل اعتماد در Elasticsearch داشته باشید.