The trouble is with "match_entire_string" is that it has no effect for searches that use the "OR" conjunction due to this if condition:
if (count($query_keys) > 1 && ($conjunction == 'AND'))
Even in "OR" searches, the only two options you would want are either matching all the individual words in addition to the entire phrase, or matching only the individual words and not checking the full phrase itself. This is exactly the way it is treated when the conjuntion is "AND", so I would advocate for it being simply:
if (count($query_keys) > 1)
Then we could just continue using the "match_entire_string" setting to control this without a need for additional option.
Just given the MR a try on our site and the editors are happy with the functionality. I did have to do a small amount of styling as the tick and cross button were escaping the container, could be specific to our site though. Shoutout to @pyrello for his work, much appreciated!
Hi John, the machine name is card_display. I'm fairly certain it isn't a typo or misnaming on my part due to it suddenly working when I tried some of the steps outlined above.
Update: I found a solution that works at this link which uses hook_entity_form_display_alter().
Hmm thanks for taking a look. I wonder why it would work for other fields but not this one.