Я бы сказал, что если вы хотите быстро разработать решение, свободный поиск текста - это, вероятно, путь вперед. Вы можете создать представление со всеми вашими объединениями, индексировать его, а затем использовать свободный текстовый поиск.
Чего он не сделает, так это естественного поиска, так что в вашем примере играет группа под названием Brisbane, в которой вернутся. Написание естественного поиска может быстро усложниться.
Возможно, для простоты сделайте серию полей, таких как x, играющих в x в точке x, и задайте по умолчанию для всех, кто играет в любом месте в любом месте, и ищите группу, город или место встречи, только если они вводят что-то отличное от значения по умолчанию.