0
0
Elasticsearchquery~10 mins

Boosting query in Elasticsearch - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Boosting query
Start: Input Query
Define Positive Query
Define Negative Query
Set Boost Factor
Execute Boosting Query
Results with Scores Adjusted
End
The boosting query runs a positive query to find relevant documents, then reduces scores of documents matching a negative query by a boost factor, returning adjusted results.
Execution Sample
Elasticsearch
{
  "query": {
    "boosting": {
      "positive": { "match": { "title": "apple" } },
      "negative": { "match": { "title": "fruit" } },
      "negative_boost": 0.5
    }
  }
}
This query finds documents with 'apple' in the title but lowers scores for those also containing 'fruit' by half.
Execution Table
StepActionQuery PartDocuments MatchedScore Effect
1Run positive querymatch title: appleDoc1, Doc2, Doc3Base scores assigned
2Run negative querymatch title: fruitDoc2, Doc4Identify docs to reduce score
3Apply negative boostnegative_boost: 0.5Doc2Score of Doc2 multiplied by 0.5
4Combine scoresboosting queryDoc1, Doc2, Doc3Doc1 and Doc3 keep base score; Doc2 score reduced
5Return resultsfinal outputDoc1, Doc2, Doc3Sorted by adjusted scores
6End--Execution complete
💡 All documents matching positive query processed; negative boost applied to overlapping docs; results returned.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
positive_docs[][Doc1, Doc2, Doc3][Doc1, Doc2, Doc3][Doc1, Doc2, Doc3][Doc1, Doc2, Doc3]
negative_docs[][][Doc2, Doc4][Doc2, Doc4][Doc2, Doc4]
scores{}{Doc1:1.0, Doc2:1.0, Doc3:1.0}{Doc1:1.0, Doc2:1.0, Doc3:1.0}{Doc1:1.0, Doc2:0.5, Doc3:1.0}{Doc1:1.0, Doc2:0.5, Doc3:1.0}
Key Moments - 3 Insights
Why does Doc2's score get reduced but Doc4 is not in the final results?
Doc2 matches both positive and negative queries, so its score is reduced by the negative boost (see execution_table step 3). Doc4 only matches the negative query, so it is excluded because it doesn't match the positive query (step 1).
What happens if the negative_boost is set to 1?
If negative_boost is 1, scores of documents matching the negative query are multiplied by 1, so their scores stay the same (no reduction). This means the boosting query behaves like a normal positive query without score reduction (refer to execution_table step 3).
Can documents not matching the positive query appear in results?
No, only documents matching the positive query are considered for results. Negative query only reduces scores of these documents if they also match the negative query (see execution_table steps 1 and 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the score of Doc2 after applying the negative boost?
A1.0
B0.0
C0.5
D2.0
💡 Hint
Check execution_table row 3 where negative boost is applied to Doc2's score.
At which step does the query exclude documents that do not match the positive query?
AStep 1
BStep 4
CStep 2
DStep 5
💡 Hint
Look at execution_table step 1 where positive query matches documents.
If negative_boost was set to 0, what would happen to the scores of documents matching the negative query?
AScores would be doubled
BScores would be zeroed out
CScores would be unchanged
DDocuments would be removed
💡 Hint
Negative boost multiplies scores; 0 means scores become zero (see execution_table step 3 logic).
Concept Snapshot
Boosting query syntax:
{
  "query": {
    "boosting": {
      "positive": {...},
      "negative": {...},
      "negative_boost": 0.5
    }
  }
}

Behavior:
- Finds docs matching positive query
- Reduces scores of docs matching negative query by negative_boost
- Returns results sorted by adjusted scores

Key rule: Only docs matching positive query appear; negative query lowers their scores.
Full Transcript
A boosting query in Elasticsearch runs two queries: a positive query to find relevant documents and a negative query to identify documents whose scores should be reduced. The negative_boost factor multiplies the scores of documents matching the negative query, lowering their rank. Documents not matching the positive query are excluded. This process helps prioritize documents matching the positive query but penalizes those also matching the negative query. The execution table shows step-by-step how documents are matched and scores adjusted. The variable tracker follows the sets of documents and their scores through each step. Key moments clarify common confusions about which documents appear and how scores change. The visual quiz tests understanding of score changes and query behavior. The concept snapshot summarizes the syntax and main behavior of the boosting query.