example:
{
"nested": {
"path": "primary_specializations",
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"term": {
"primary_specializations.id.keyword": "frontend_engineer"
}
},
{
"term": {
"primary_specializations.is_current": true
}
}
]
}
},
"script_score": {
"script": {
"params": {
"total_weight": 1
},
"source": "double score_by_primary_specialization(double primary_specialization_score) { if (primary_specialization_score >= 80) { return primary_specialization_score; } else if (primary_specialization_score >= 40) { return primary_specialization_score * 0.5; } else { return primary_specialization_score * 0.1; } } return score_by_primary_specialization(doc['primary_specializations.score'].value) * params.total_weight;"
}
},
"boost_mode": "sum",
"boost": 1
}
}
}
}
使用source编写脚本,其中可以使用到params里的值。