//
GET /users/_search
{
    "query": {
        "range": {
            "id": {
                "lte": 20
            }
        }
    },
    "sort": [
        {
            "age": {
                "order": "desc"
            }
        }
    ]
}
// مرتب سازی بر اساس فیلد age 
// از زیاد به کم
// برای کم به زیاد از asc در order استفاده کنید


POST /users/_search
{
    "aggs": {
        "citys": {
            "terms": {
                "field": "city",
                "size": 20
            },
            "aggs": {
                "pageination": {
                    "bucket_sort": {
                        "from": 10,
                        "size": 10
                    }
                }
            }
        }
    }
}
// گرفتن 10 تای دوم در aggs 
// از 10 شروع کن
// تا 10 برو


POST /users/_search
{
  "aggs": {
    "a1": {
      "terms": { 
        "field": "age",
        "order": {"_Sort": "desc"}
      },
      "aggs":{
        "_Sort":{
          "sum":{
            "field":"age.age"
          }
        }
      }
    }
  }
}
// در خط "order": {"_Sort": "desc"} گفته میشود بر اساس فیلد _Sort مرتب کن
// فیلد _Sort یک فیلد مجازی است که با aggs ساخته شده
// در فیلد _Sort گفته میشود یک عملیات جمع انجام بده و فیلد age را با فیلد age چمع کن
// یعنی هر نتیجه ای که حاصل معادلعه فیلد _Sort اش بیشتر باشد، اول نمایش داده میشود
// با تغییر desc به asc نیز از آخر مرتب میشود
// میتوان به جای sum.. min, max و avg هم میتوان گذاشت


POST /users/_search
{
    "aggs": {
        "citys": {
            "terms": {
                "field": "city",
                "size": 20
            },
            "aggs": {
                "pageination": {
                    "bucket_sort": {
                        "sort": [
                            {
                                "sort_field_1": {
                                    "order": "asc"
                                }
                            },
                            {
                                "sort_field_2": {
                                    "order": "desc"
                                }
                            },
                            "sort_field_3"
                        ]
                    }
                }
            }
        }
    }
}
// تعیین اولویت برای sort
// اول بر اساس sort_field_1 از کم به زیاد، اگر مساوی بودند بر اساس sort_field_2 و بعد هم sort_field_3
// order دیفالت desc هست و حتمنا نیازی به تعریف آن نیست

