// 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