во первых - денормализовать базу, завести поисковое поле где будет объединено имя и описание и завести на него индекс.
Во вторых - разбить запрос по пробелам и конечный результат искать как (условно)
select * from products as pd
where `searchname` like '%$words[0]%'
and `searchname` like '%$words[1]%'
and `searchname` like '%$words[2]%'
PS: dop_name, opis_name, seriya_nasos - горите в аду.