(4) Нет, пользователь вводит и не знает порядок слов, хотел услышать если ли простое решение, а другие варианты не так интересны так как и так понятны.
(5) юзай полнотекстовый поиск - там это реализовано, включая сложные комбинации и вероятности
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший