UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: cdynot от 01 Августа 2016, 13:19:55

Название: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 13:19:55
Доброго времени суток! На сайте есть поиск, реализованный через стандартный search search_do(). Минимальная длина поискового запроса для поиска, на сколько я знаю, 3 символа. Вопрос: можно ли сделать минимальной длину в 2 символа, не прибегая к использованию Sphinx? Заранее спасибо за помощь!
Название: Re: Минимальная длина поискового запроса
Отправлено: aghigay от 01 Августа 2016, 14:31:03
Добрый день
А с чего вы взяли, что минимальная длина для поиска 3 символа?
Название: Re: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 14:35:11
Так написано в оф документации юми http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_poisk/
Название: Re: Минимальная длина поискового запроса
Отправлено: aghigay от 01 Августа 2016, 14:39:40
А, да, точно. В файле /classes/system/subsystems/models/search/searchModel.php в функции runSearch написано
if (wa_strlen($word) >= 3) {
$words[] = $word;
}
Если только править это ручками, внося в код 2 вместо 3. Но при следующем обновлении ЮМИ все вернется обратно
Название: Re: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 14:51:25
А, да, точно. В файле /classes/system/subsystems/models/search/searchModel.php в функции runSearch написано
if (wa_strlen($word) >= 3) {
$words[] = $word;
}
Если только править это ручками, внося в код 2 вместо 3. Но при следующем обновлении ЮМИ все вернется обратно

Спасибо за ответ! Но это не помогло(
Название: Re: Минимальная длина поискового запроса
Отправлено: aghigay от 01 Августа 2016, 14:55:20
Видимо просто в функции чуть ниже buildQueries есть еще упоминание if (wa_strlen($word) < 3) { - попробуйте это
Название: Re: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 14:56:22
Видимо просто в функции чуть ниже buildQueries есть еще упоминание if (wa_strlen($word) < 3) { - попробуйте это

Тоже менял. Не помогло( Не ищет как буквы, так и цифры
Название: Re: Минимальная длина поискового запроса
Отправлено: aghigay от 01 Августа 2016, 14:59:33
как насчет вот этой строки if ((wa_strlen($word_base) >= 3) && ($word_base != $word) ) {
Название: Re: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 15:13:25
как насчет вот этой строки if ((wa_strlen($word_base) >= 3) && ($word_base != $word) ) {

Заменил все 3 на 2 в этом файле (кроме строк
         $weights = Array(
            'h1' => 5,
            'title' => 5,
            'meta_keywords' => 3,
            'meta_descriptions' => 3,
            'tags' => 3
         );
) Не помогло. Пробовал делать переиндексацию в настройке модуля(
Название: Re: Минимальная длина поискового запроса
Отправлено: cdynot от 01 Августа 2016, 16:18:05
Разобрался, нужно было дополнительно заменить 2 на 1 в строке if (wa_strlen($v) <= 1) continue; (метод splitString($str))