Jump to content

Как сделать поиск не только по началу слова но и по последним буквам?


Recommended Posts

Очень нужно реализовать поиск по окончанию слов или кодов в магазине, может есть готовый модуль?, хотя я искал и не нашел, может плохо искал...

Link to comment
Share on other sites

Благодарю за совет, но не получается, пробовал разные варианты, или вообще не работает поиск, или без изменений. Может не делаю как надо? Можно немного подробнее...

Link to comment
Share on other sites

в файле classes/Seach.php
функция find
ищем следуещее место

                        if (!empty($word))
                       {
                               $word = str_replace('%', '\\%', $word);
                               $word = str_replace('_', '\\_', $word);
                               $whereArray[] = ' p.id_product '.($word[0] == '-' ? 'NOT' : '').' IN (
                                       SELECT id_product
                                       FROM '._DB_PREFIX_.'search_word sw
                                       LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
                                       WHERE sw.id_lang = '.intval($id_lang).'
                                       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)).'%\'').'
                               ) ';
                               if ($word[0] != '-')
                                       $scoreArray[] = 'sw.word LIKE \''.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)).'%\'').'


и

                                        $scoreArray[] = 'sw.word LIKE \'%'.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';

Link to comment
Share on other sites

×
×
  • Create New...