How about the idea of weighted tags, basically giving certain tags higher preferance over others in a heirachy. For example if you had a range from 1 to 10 with 1 being the lowest value and 10 being the highest with regards to weighting.
To simply answer your question, we do indeed have the ability to weight each term in a query by appending ^number to each term. (e.g. cat^2 dog^0.1) But I wouldn't recommend it. While this is somewhat useful for us to tweak the quality of search results returned, it is not particularly that helpful to users since it just affects the ranking of the results and nothing else.
What you might want to try instead is to just use a few good terms with parentheses and OR queries like
UK (church OR cathedral) interior
Why? Without the use of OR, our search engine's set to look for deviations that have ALL the terms in the query. And as you may have noticed, there are no such deviations with all of your terms.
PS These weighted queries are really meant for internal use only so, it may be disabled/changed without any notice.
Here is an example of some weighted tags
(8)church (10)chathedral (10)UK (3)interior (1)worship (1)religous
So basically when you do a search "cathedral" and "UK" will be the most important search with "church" sorted next.