I want to apply negative boosting to items, based on the value of an indexed checkbox field in order to move those items to the bottom of the search results. I am applying (positive) boosting to other fields as well which precludes me from simply ordering my results by the discontinued field.

I am indexing the checkbox field as a string, as I believe this may be necessary in order to use boosting on this indexing field. I'm not certain of this though.

My method for adding negative boost predicates is below:

private IQueryable<IndexedItem> AddUnboostingPredicates(IQueryable<IndexedItem> queryable)
    return queryable.Where(item => item["discontinued"].Equals("1").Boost(-1000)
                                       || item["discontinued"].Equals("0"));

This code results in the error message

{"error":{"code":"","message":"Failed to parse query string at line 1, column 70. See https://aka.ms/azure-search-full-query for supported syntax."}}

Looking at search.log file I believe this is the offending part of the query expression sent to Azure:

(product_discontinued:(1)^-1000 OR product_discontinued:(0))

Azure Search does not seem to support negative boost values, as indicated here.

To boost a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. You can also boost phrases. The higher the boost factor, the more relevant the term will be relative to other search terms. By default, the boost factor is 1. Although the boost factor must be positive, it can be less than 1 (for example, 0.20).

| improve this answer | |
  • Do you know if a (positive) value less than 1 has the same effect as boosting? – Matthew Dresser Oct 3 '18 at 13:24
  • I'm not sure about that. – Søren Kruse Oct 4 '18 at 9:30
  • 1
    I can confirm that it doesn't. With azure search, you just have to adjust all your boost values accordingly instead of using negative ones. – Matthew Dresser Oct 4 '18 at 22:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.