مثال Aggregation برای تحلیل داده‌ها

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/06/26
  • تعداد بازدید: 1

Aggregation در Elasticsearch به ما امکان می‌دهد داده‌ها را گروه‌بندی و تحلیل کنیم، مشابه عملیات GROUP BY و توابع تجمیعی در SQL. در ادامه یک مثال عملی برای تحلیل محصولات آورده شده است.

مثال: تحلیل میانگین قیمت محصولات به تفکیک برند


GET /products/_search
{
  "size": 0,
  "aggs": {
    "brands": {
      "terms": {
        "field": "brand.keyword"
      },
      "aggs": {
        "avg_price": {
          "avg": {
            "field": "price"
          }
        },
        "max_price": {
          "max": {
            "field": "price"
          }
        },
        "min_price": {
          "min": {
            "field": "price"
          }
        }
      }
    }
  }
}

توضیح ساختار

  • terms aggregation: گروه‌بندی محصولات بر اساس برند.
  • avg aggregation: محاسبه میانگین قیمت محصولات هر برند.
  • max aggregation: پیدا کردن بالاترین قیمت هر برند.
  • min aggregation: پیدا کردن پایین‌ترین قیمت هر برند.

نمونه نتیجه خروجی


{
  "aggregations": {
    "brands": {
      "buckets": [
        {
          "key": "Dell",
          "doc_count": 5,
          "avg_price": { "value": 2300.5 },
          "max_price": { "value": 2500.5 },
          "min_price": { "value": 2100.0 }
        },
        {
          "key": "HP",
          "doc_count": 3,
          "avg_price": { "value": 2000.0 },
          "max_price": { "value": 2200.0 },
          "min_price": { "value": 1800.0 }
        }
      ]
    }
  }
}

با این روش می‌توان داشبوردهای تحلیلی ساده و پیشرفته ایجاد کرد و به سرعت اطلاعات مفیدی مثل میانگین قیمت، بیشترین و کمترین قیمت هر دسته‌بندی دریافت نمود.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.