Dismax has an interesting feature. You can express that amongst the list of words that should match, at least n or n% must be present (and a few more variations)
https://wiki.apache.org/solr/ExtendedDisMax