Bird
Raised Fist0
Elasticsearchquery~5 mins

Boosting query in Elasticsearch - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Boosting query in Elasticsearch?
A Boosting query lets you increase the score of documents matching a positive query and decrease the score of documents matching a negative query, helping to rank results better.
Click to reveal answer
beginner
Which two main parts does a Boosting query have?
A Boosting query has a positive query to match preferred documents and a negative query to match documents to downrank.
Click to reveal answer
intermediate
What does the 'negative_boost' parameter do in a Boosting query?
The 'negative_boost' parameter reduces the score of documents matching the negative query by multiplying their score by this value (less than 1).
Click to reveal answer
beginner
How would you describe the effect of a Boosting query using a real-life example?
Imagine searching for 'apple' but you want to show fruit results higher and downrank results about the company Apple. The Boosting query boosts fruit matches and lowers company matches.
Click to reveal answer
intermediate
Show a simple JSON example of a Boosting query that boosts 'apple' fruit and downranks 'apple' company.
{ "boosting": { "positive": { "match": { "content": "apple fruit" } }, "negative": { "match": { "content": "apple company" } }, "negative_boost": 0.3 } }
Click to reveal answer
What does the 'positive' part of a Boosting query do?
AMatches documents to increase their score
BMatches documents to decrease their score
CFilters out documents
DSorts documents alphabetically
What value range should 'negative_boost' have?
AGreater than 1
BEqual to 1
CBetween 0 and 1
DLess than 0
If a document matches both positive and negative queries, what happens?
AIts score is boosted then reduced by negative_boost
BIts score is only reduced
CIts score is only boosted
DIt is excluded from results
Which Elasticsearch query type is used inside a Boosting query?
AMatch query
BAny valid query
CTerm query
DRange query only
What is the main purpose of using a Boosting query?
ATo count documents
BTo sort documents alphabetically
CTo filter out unwanted documents completely
DTo adjust ranking by promoting some results and demoting others
Explain how a Boosting query works in Elasticsearch and why you might use it.
Think about how you can promote some results and lower others in search.
You got /4 concepts.
    Write a simple Boosting query JSON that boosts documents containing 'chocolate' but lowers documents containing 'vanilla'.
    Use the boosting query structure with positive, negative, and negative_boost.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a boosting query in Elasticsearch?
      easy
      A. To filter out documents without a specific field
      B. To sort results alphabetically
      C. To increase the relevance score of some results and decrease others
      D. To aggregate data by terms

      Solution

      1. Step 1: Understand boosting query purpose

        A boosting query is designed to adjust the relevance scores of search results by raising some and lowering others.
      2. Step 2: Compare with other query types

        Sorting alphabetically, filtering, and aggregating are different Elasticsearch features unrelated to boosting.
      3. Final Answer:

        To increase the relevance score of some results and decrease others -> Option C
      4. Quick Check:

        Boosting query = Adjust relevance scores [OK]
      Hint: Boosting changes scores, not sorting or filtering [OK]
      Common Mistakes:
      • Confusing boosting with sorting
      • Thinking boosting filters documents
      • Mixing boosting with aggregation
      2. Which of the following is the correct syntax snippet for a boosting query in Elasticsearch?
      easy
      A. { "boosting": { "positive": { "term": { "field": "value" } }, "negative": { "term": { "field": "other" } } } }
      B. { "boost": { "match": { "field": "value" }, "boost_factor": 2 } }
      C. { "boosting_query": { "positive": { "term": { "field": "value" } }, "negative": { "term": { "field": "other" } } } }
      D. { "boosting": { "positive": { "match": { "field": "value" } }, "negative": { "match": { "field": "other" } }, "negative_boost": 0.5 } }

      Solution

      1. Step 1: Identify correct boosting query structure

        The correct syntax uses the "boosting" key with "positive", "negative", and "negative_boost" fields.
      2. Step 2: Check each option

        The snippet using "boosting" with "positive" match query, "negative" match query, and "negative_boost": 0.5 matches the correct structure. Others miss "negative_boost" or use incorrect keys like "boost" or "boosting_query".
      3. Final Answer:

        { "boosting": { "positive": { "match": { "field": "value" } }, "negative": { "match": { "field": "other" } }, "negative_boost": 0.5 } } -> Option D
      4. Quick Check:

        Boosting query syntax = { "boosting": { "positive": { "match": { "field": "value" } }, "negative": { "match": { "field": "other" } }, "negative_boost": 0.5 } } [OK]
      Hint: Look for "boosting" with positive, negative, and negative_boost keys [OK]
      Common Mistakes:
      • Using wrong key names like "boost" or "boosting_query"
      • Omitting "negative_boost"
      • Using incorrect query types inside positive/negative
      3. Given this boosting query, what will happen to documents matching the negative query?
      {
        "boosting": {
          "positive": { "match": { "title": "apple" } },
          "negative": { "match": { "title": "banana" } },
          "negative_boost": 0.3
        }
      }
      medium
      A. Their relevance scores will be increased by 0.3
      B. Their relevance scores will be decreased by multiplying by 0.3
      C. They will be excluded from results
      D. They will have the same score as positive matches

      Solution

      1. Step 1: Understand negative_boost effect

        The negative_boost value multiplies the score of documents matching the negative query, lowering their relevance.
      2. Step 2: Apply to given query

        Documents matching "banana" will have their scores multiplied by 0.3, reducing their rank but not excluding them.
      3. Final Answer:

        Their relevance scores will be decreased by multiplying by 0.3 -> Option B
      4. Quick Check:

        negative_boost multiplies score down [OK]
      Hint: Negative matches get score multiplied by negative_boost < 1 [OK]
      Common Mistakes:
      • Thinking negative_boost adds to score
      • Assuming negative matches are filtered out
      • Confusing negative_boost with positive boost
      4. Identify the error in this boosting query:
      {
        "boosting": {
          "positive": { "match": { "content": "dog" } },
          "negative": { "match": { "content": "cat" } }
        }
      }
      medium
      A. Missing "negative_boost" field
      B. Incorrect query type inside positive
      C. Wrong key name "boosting" should be "boost"
      D. Positive and negative queries cannot use the same field

      Solution

      1. Step 1: Check required fields in boosting query

        A boosting query requires "positive", "negative", and "negative_boost" fields to work correctly.
      2. Step 2: Identify missing element

        The provided query lacks the "negative_boost" field, which defines how much to reduce negative matches.
      3. Final Answer:

        Missing "negative_boost" field -> Option A
      4. Quick Check:

        Boosting query needs negative_boost [OK]
      Hint: Always include negative_boost in boosting queries [OK]
      Common Mistakes:
      • Omitting negative_boost
      • Using wrong key names
      • Assuming same field usage is invalid
      5. You want to boost documents containing "premium" in the category field and reduce scores of documents containing "basic" in the same field by half. Which boosting query correctly achieves this?
      hard
      A. { "boosting": { "positive": { "term": { "category": "premium" } }, "negative": { "term": { "category": "basic" } }, "negative_boost": 0.5 } }
      B. { "boosting": { "positive": { "match": { "category": "premium" } }, "negative": { "match": { "category": "basic" } }, "negative_boost": 2 } }
      C. { "boost": { "term": { "category": "premium" }, "boost_factor": 2 } }
      D. { "boosting": { "positive": { "term": { "category": "basic" } }, "negative": { "term": { "category": "premium" } }, "negative_boost": 0.5 } }

      Solution

      1. Step 1: Identify positive and negative queries

        Positive query should match "premium" category to boost, negative query should match "basic" to reduce score.
      2. Step 2: Check negative_boost value

        Negative boost of 0.5 reduces scores of negative matches by half, which matches the requirement.
      3. Step 3: Verify options

        { "boosting": { "positive": { "term": { "category": "premium" } }, "negative": { "term": { "category": "basic" } }, "negative_boost": 0.5 } } correctly uses term queries and negative_boost 0.5. Other options either use negative_boost greater than 1, are not boosting queries, or reverse positive and negative.
      4. Final Answer:

        { "boosting": { "positive": { "term": { "category": "premium" } }, "negative": { "term": { "category": "basic" } }, "negative_boost": 0.5 } } -> Option A
      5. Quick Check:

        Positive = premium, negative = basic, negative_boost = 0.5 [OK]
      Hint: Positive boosts, negative reduces with negative_boost < 1 [OK]
      Common Mistakes:
      • Swapping positive and negative queries
      • Using negative_boost greater than 1
      • Using boost instead of boosting query
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard