در Elasticsearch قبل از ذخیرهسازی دادهها، میتوان یک Mapping تعریف کرد تا نوع و ویژگی هر فیلد مشخص شود. این کار به بهبود جستجو، آنالیز و عملکرد کمک میکند. در ادامه یک مثال ساده برای یک پروژه واقعی فرضی فروشگاه آنلاین آورده شده است.
مثال Mapping برای ایندکس محصولات
PUT /products
{
"mappings": {
"properties": {
"product_id": {
"type": "integer"
},
"name": {
"type": "text"
},
"brand": {
"type": "keyword"
},
"price": {
"type": "float"
},
"available": {
"type": "boolean"
},
"created_at": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
توضیح فیلدها
- product_id: شناسه عددی یکتا برای هر محصول.
- name: نام محصول که قابل جستجوی متنی است.
- brand: برند محصول به صورت
keyword
برای جستجوی دقیق. - price: قیمت محصول به صورت عدد اعشاری.
- available: وضعیت موجود بودن محصول به صورت بولین.
- created_at: تاریخ ایجاد محصول با فرمت مشخص.
مثال سند در این ایندکس
POST /products/_doc/1
{
"product_id": 1,
"name": "Laptop Pro 15",
"brand": "Dell",
"price": 2500.50,
"available": true,
"created_at": "2025-09-17"
}
مزایای تعریف Mapping
- کنترل دقیق نوع دادهها و جلوگیری از اشتباهات در ذخیرهسازی.
- بهبود سرعت جستجو و تحلیل دادهها.
- امکان استفاده بهینه از Aggregations و فیلترها.
- قابلیت اعمال تنظیمات پیشرفته مانند آنالیز متن برای فیلدهای
text
.
با تعریف ساختار دادهها و Mapping مناسب، پروژه شما آماده ذخیره و جستجوی دادهها به شکل بهینه در Elasticsearch خواهد بود.