# Implementing boost factor on conditional query

**URL:** <https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235>\
**Category:** Elasticsearch\
**Created:** [May 29, 2016, 2:01am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235 "2016-05-29T02:01:32Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![manoj241176](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@manoj241176](https://discuss.elastic.co/u/manoj241176)\
**Post date:** [May 29, 2016, 2:01am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/1 "2016-05-29T02:01:33Z")

</div>

Hi, I am new to elasticsearch.

I have document having values for employee, their department and salary. I want to apply boost factor based on department and their salary condition based i.e. salary less than 1500$ should get higher ranking. For example.

"Department" : "Technical",  
"Boost": "2"  
"Salary" : "\<=1500",  
"Boost":"1"

## Expected output:

Name: ABC,  
Department: Technical  
Salary: 1000

Name: XYZ  
Department: Technical  
Salary: 1200

Name: PQR  
Department: Technical  
Salary: 1600

Please suggest how can I write this query in elastic.

Regards

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 29, 2016, 5:12am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/2 "2016-05-29T05:12:45Z")

</div>

You could probably use a bool query with should clauses and boost everyone on those closes.

Also function score API could help.

My 2 cents

---

<div class="post-metadata">

**Author:** ![manoj241176](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@manoj241176](https://discuss.elastic.co/u/manoj241176)\
**Post date:** [May 29, 2016, 2:20pm UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/3 "2016-05-29T14:20:40Z")

</div>

I had tried using script\_field for salary, but it was returning only true / false value; however I am looking for complete resultset, with name, department and salary as well

---

<div class="post-metadata">

**Author:** ![manoj241176](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@manoj241176](https://discuss.elastic.co/u/manoj241176)\
**Post date:** [May 30, 2016, 6:38am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/4 "2016-05-30T06:38:18Z")

</div>

I have used bool query with should and must clause and boost factor on the required ones, however not sure how to take care the Salary part of the clause with the boost factor.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 30, 2016, 6:55am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/5 "2016-05-30T06:55:26Z")

</div>

I dunno if you don't share a full reproduction script.

---

<div class="post-metadata">

**Author:** ![manoj241176](https://avatars.discourse-cdn.com/v4/letter/m/2bfe46/32.png) [@manoj241176](https://discuss.elastic.co/u/manoj241176)\
**Post date:** [May 30, 2016, 8:00am UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/6 "2016-05-30T08:00:34Z")

</div>

samle query script, as below,

GET employee/employeedetail/\_search  
{  
"query": {  
"function\_score": {  
"query":{  
"filtered":{  
"query":{  
"bool":{  
"must":[  
{  
"match":{  
"department":{  
"query":"technical"  
}  
}  
}  
],  
"should": [  
{  
"term": {  
"gender": {  
"value": "male",  
"boost": 2  
}  
}  
}  
]  
}  
}  
}  
},

```
  "functions": [
    
    {
      "gauss": {
        "salary": {
          "origin": "50",
          "offset": "50", 
          "scale": "10"
        }
      },
      "weight": 1
    },
    {
      "script_score": {
        "script": "_score * doc['salary'].value"
      }
    }
  ]
  
}

```

}

}

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 10:48pm UTC](https://discuss.elastic.co/t/implementing-boost-factor-on-conditional-query/51235/7 "2017-07-05T22:48:10Z")

</div>

Closed on July 5, 2017, 10:48pm UTC


