Оптимизация поиска Prestashop
Есть магазин Престашоп. Есть в нем поиск по каталогу. И все бы хорошо, если б не одно но...
товар в магазине специфический, имеет очень длинные составные названия и описания, например IP3600/4600/MP540/630 (это оч короткий пример). и если в поиске по умолчанию ввести например 600, 4600, 630 то ничего найдено не будет. А это не есть гуд, равно тому что поиск не работает.
Проблема частично была решена редактированием класса поиска:
AND sw.word LIKE '.($word[0] == '-' ? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\'' : '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'').'
на
AND sw.word LIKE '.($word[0] == '-' ? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\'' : '\'%'.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'').'
вроде бы начало искать что надо...НО:
1. Ищет много лишнего - есть подозрения что по запросу 6400 находит например 4600
2. главное. База не большая, именно таблица с описаниями всегото метров 5. И сервер вроде норм -Два двухядерных АМД оптерон х2 2200 + 8 Гб ОЗУ
А поиск при данной правке занимает до 20 секунд, что не приемлемо.
Задача: Оптимизировать поиск для поиска запросов "внутири слов". Максимум 2-3 сек на формирование ответа от сервера.