Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Формирование прямого sql запроса к таблицам БД

Автор atachРаздел Custom макросы

Ответов: 1
Просмотров: 2049
Последний ответ 11 Декабря 2012, 18:33:19
от Vladimir
Сортировка usel запроса

Автор NOIRMANРаздел Шаблоны PHP

Ответов: 4
Просмотров: 2707
Последний ответ 31 Августа 2016, 22:46:55
от e.ioffe
отображение запроса USEL в виде запроса SQL

Автор BaceHРаздел Custom макросы

Ответов: 5
Просмотров: 4231
Последний ответ 11 Января 2013, 19:48:58
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Доброго времени суток! На сайте есть поиск, реализованный через стандартный search search_do(). Минимальная длина поискового запроса для поиска, на сколько я знаю, 3 символа. Вопрос: можно ли сделать минимальной длину в 2 символа, не прибегая к использованию Sphinx? Заранее спасибо за помощь!

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Минимальная длина поискового запроса
« Ответ #1 : 01 Августа 2016, 14:31:03 »
Добрый день
А с чего вы взяли, что минимальная длина для поиска 3 символа?
Мой блог http://umicms.me

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re: Минимальная длина поискового запроса
« Ответ #2 : 01 Августа 2016, 14:35:11 »
Так написано в оф документации юми http://help.docs.umi-cms.ru/rabota_s_modulyami/modul_poisk/

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Минимальная длина поискового запроса
« Ответ #3 : 01 Августа 2016, 14:39:40 »
А, да, точно. В файле /classes/system/subsystems/models/search/searchModel.php в функции runSearch написано
if (wa_strlen($word) >= 3) {
$words[] = $word;
}
Если только править это ручками, внося в код 2 вместо 3. Но при следующем обновлении ЮМИ все вернется обратно
Мой блог http://umicms.me

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re: Минимальная длина поискового запроса
« Ответ #4 : 01 Августа 2016, 14:51:25 »
А, да, точно. В файле /classes/system/subsystems/models/search/searchModel.php в функции runSearch написано
if (wa_strlen($word) >= 3) {
$words[] = $word;
}
Если только править это ручками, внося в код 2 вместо 3. Но при следующем обновлении ЮМИ все вернется обратно

Спасибо за ответ! Но это не помогло(

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Минимальная длина поискового запроса
« Ответ #5 : 01 Августа 2016, 14:55:20 »
Видимо просто в функции чуть ниже buildQueries есть еще упоминание if (wa_strlen($word) < 3) { - попробуйте это
Мой блог http://umicms.me

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re: Минимальная длина поискового запроса
« Ответ #6 : 01 Августа 2016, 14:56:22 »
Видимо просто в функции чуть ниже buildQueries есть еще упоминание if (wa_strlen($word) < 3) { - попробуйте это

Тоже менял. Не помогло( Не ищет как буквы, так и цифры

*

aghigay

  • *****
  • 611
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Минимальная длина поискового запроса
« Ответ #7 : 01 Августа 2016, 14:59:33 »
как насчет вот этой строки if ((wa_strlen($word_base) >= 3) && ($word_base != $word) ) {
Мой блог http://umicms.me

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re: Минимальная длина поискового запроса
« Ответ #8 : 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
         );
) Не помогло. Пробовал делать переиндексацию в настройке модуля(

*

cdynot

  • *
  • 7
  • +0/-0
    • Просмотр профиля
Re: Минимальная длина поискового запроса
« Ответ #9 : 01 Августа 2016, 16:18:05 »
Разобрался, нужно было дополнительно заменить 2 на 1 в строке if (wa_strlen($v) <= 1) continue; (метод splitString($str))