//
PUT my-index

PUT my-index/_doc/1
{
  "my_field": 5
}


GET my-index/_search
{
  "script_fields": {
    "my_doubled_field": {
      "script": { 
        "source": "doc['my_field'].value * params['multiplier']", 
        "params": {
          "multiplier": 2
        }
      }
    }
  }
}
// ساخت یک فیلد مجازی به نام my_doubled_field
// اجرای اسکریپت 
// script -> source ==> مقدار داخل فیلد
// doc['my_field'].value * params['multiplier']
// از این doc, فیلد my_field را بگیر و مقدارش را ضرب بر پارامتر multiplier بکن
// نتیجه: my_doubled_field -> 10
// به صورت
// doc['my_field'].value * params.get('multiplier')
// هم میتوان نوشت



POST _scripts/calculate-score
{
    "script": {
        "lang": "painless",
        "source": "Math.log(_score * 2) + params['my_modifier']"
    }
}
// elasticsearch یک index دارد به نام _scripts
// میتوانید در این ایندکس script ذخیره کنید تا بعدا استفاده کنید
// calculate-score -> آی دی script
// Math.log(_score * 2) -> لوگاریتم امتیاز * 2
//  + params['my_modifier'] --> + پارامتر my_modifier

GET _scripts/calculate-score

// گرفتن اسکریپت




GET my-index/_search
{
  "query": {
    "script_score": {
      "query": {
        "match": {
            "my_field": 5
        }
      },
      "script": {
        "id": "calculate-score", // id of saved script
        "params": {
          "my_modifier": 2
        }
      }
    }
  }
}
// change score to Math.log(_score * 2) + params['my_modifier']


DELETE _scripts/calculate-score

// DELETE a script


POST my-index/_doc/1
{
    "colors": [
        "blue",
        "red",
        "green",
        "yellow"
    ]
}
// Insert a Array