Это не правильное поведение - это недопоиск.
Представьте, если бы в яндексе надо было соблюсти все пробелы и знаки препинания для поиска!
Например, вам нужно найти как правильно пишется какое-либо слово, или словосочетание и, пока вы не введете его правильно, яндекс вам не выдаст вообще никакого ответа!
Поиск должен разбирать строку на подстроки и искать вхождения, а не выдавать ответ только когда запрос введен абсолютно идентично сохраненному значению.
В случае с интернет-магазином, я думаю, как у яндекса поиск не потребуется, но более логичный и объемный должен быть по-любому.
То есть, как я это вижу: для запроса ставится ограничение, например, в 50 символов, чтобы не перегружать сервер. Строка делится на подстроки по любому знаку препинания, или пробелу и запрос к базе данных проверяет вхождения по каждой подстроке. Потом выдает ответ в соответствии с релевантностью вхождений.
Если все подстроки имеют вхождение в строку - этот ответ выдается первым, далее - по убывающей.