Да. ТЗ вы похоже никогда не писали :-)
Хоть картинку бы нарисовали :-) не говоря уж об реализации этого в коде :-)
Строка должна понимать сокращения типа ЛО? Переставлять слова, если они не в правильном порядке? Или в косвеном падеже и с ошибкой? :-) Ведь в строку можно написать что угодно. Вариант конечно копи-пастить из арса.....При текущем 'тыкании' в запросе идут именно ид преметов, а уже только потом по ид вытягиваются названия - в общем реализация простая, понятная и работает четко, единственное, может чутка и страдает юзабилити. Но обычно подобным образом на большинсве сайтов где идет выбор попараметрам - интернет магазины, первое, что приходит в голову - так и реализовано.
В данном предложении юзабилити может и выиграет, но вы опишите поподробнее свои желания :-)