На рассмотрении

+5

Доработка модуля Поиск. Игнорирование символов

Поло Арт Обновлен 1 месяц назад в категории CMS Общий функционал 1

В настройках модуля Поиск есть поле "Игнорируемые при поиске символы (только для like+)"
Но вы знаете, что происходит при этом? Символы не игнорируются, а заменяются на пробел!
И, при поиске по артикулам вида NN100, NN-100, чтобы выдача была одинаковой, это критично. Потому что NN-100 заменяется на NN_пробел_100
Для одного из наших клиентов мы внесли доработку. Там теперь есть реально игнорируемые символы и набор символов, заменяющихся на пробел
Доработка аховая, 15 минут времени.
Ставьте плюсики, если это необходимо в стоке, RS в курсе ситуации.

Комментарии 1

  • Алексей Дехта 1 месяц назад

    Точно подмечено. Именно поэтому в файле search/model/engine/mysql.inc.php я и оставил вот этот код, как это было ранее до вынесения этих символов в отдельную настройку в поле в админке. Там посему-то не работает, а так работают оба варианта в поиске - NN100, NN-100,


    protected function prepareLikePlusString($query)
    {
    $dis = array('`','~','!','@','#','$','%','^','&','*','(',')','_','=',
    '+','\\','|','[',']','{','}',';',':','"','\'',',','.','<',
    '>','/','?','№','-');
    return str_replace($dis, '', mb_strtolower($query));
    }

Написать сообщение