Root word has different meaning...how to resolve?

We’re working on querying medical data, and what were experiencing is in some cases the root of a word is different that the final desired word. An example: User is looking for information on ‘shoulder’ (maybe shoulder surgery, care, exercises, etc.), but because ‘should’ is part of shoulder, we’re seeing results with ‘should’ come to the top. This is not desirable, as we want them to see entries relevant to shoulder. Thoughts?

Thanks!

We’re actually not working with words roots.
should is a version of shoulder with two typos : the e and the r removed.
By default, we consider words with two typos only if your typed word has more than 8 characters.

By default, in our ranking formula, typos is at the top of the ranking formula.
In which case, when you type:

  • should, both show up
  • should do, you’ll have first should results, then shoulder results
  • shoulder: you’ll have first shoulder, thenshould` results

If you want to remove typo tolerance, you can using the typoTolerance setting either at indexing or query time.
You can also modify the minWordSizeFor2Typos setting, also at indexing or query time.

Finally, if your issue is that you should only be searching for medical words, then your records searchableAttributes should maybe only contain strings with medical words.