Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть магазин Престашоп. Есть в нем поиск по каталогу. И все бы хорошо, если б не одно но...

товар в магазине специфический, имеет очень длинные составные названия и описания, например 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 сек на формирование ответа от сервера.

13 лет назад
Jin-Roh
38 летУкраина
16 лет в сервисе
Был
7 лет назад