Вы, конечно, можете сделать что-то вроде замены
where contains((upper-case($value)), (upper-case($search_term)))
от
where some $v in tokenize($value, '\s'), $k in tokenize($search_term, '\s')
satisfies upper-case($v) = upper-case($k)
Тем не менее, я боюсь, что результаты могут разочаровать пользователей, привыкших к интеллектуальному поиску свободного текста, доступному из таких движков, как Google. Вместо того, чтобы строить свой собственный грубый поиск свободного текста, было бы лучше использовать что-то, что делает работу правильно.