1. Сначала задайте синонимы
Метал. = метал. = металлическая
2. Если слово "металлическая" не важно а важно слово "муфта" то задайте список игнорируемых слов которые удалятся перед анализом
3. "3-М" в данном случае важно или нет?
4. Короче отсеиваете неважное, приводите к одному регистру и ищете точные вхождения, или группируете по заданным символам. Модель выделяете в отдельную строку регуляркой и ищете что бы в искомой строк было 2 совпадения и по слову и по модели.
5. Если слова длинные и есть склонения используете Стеммер Портера, но он плохо работает с короткими словами.
Всё.
Пример:
Муфта металлическая 3-М
Удаляем "металлическая" и приводим к 1 регистру стало: "муфта 3-м" разбираем пробелом на 2 строки стало: "муфта" и "3-м".
Поиск в цикле:
Строка: "Шайба металлическая 3-М". Приводим регистр, стало "шайба металлическая 3-м" проверяем на "муфта" - нет, проверяем на "3-м" - есть - не подходит, надо что бы и то и то совпадало.
Ну и регулярки юзайте по необходимости
/муфт[а-яё]+/ismu
/[0-9]-м/ismu // найдёт все модели от 0-м до 9-м