• Главная
  • Поиск
    •  
  • Здравствуйте, Гость

Автор Тема: Поиск по буквам или частям слов  (Прочитано 8098 раз)
Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« : 21 Ноябрь 2017, 18:39:19 »
В Osclass по умолчанию используется полнотекстовый поиск по словам от 4 символов.
Изменить это можно на своём сервере или VPS в настройках MySQL, подробней тут:https://osclass.pro/nastrojka-mysql-polnotekstovogo-poiska/
Для тех у кого шаред хостинг, возможно поможет хак, с добавлением функции(в functions.php шаблона) в шаблон:
function cust_search_keyword_wildcard($params) {

    if ($params['sPattern']) {
        $mSearch =  Search::newInstance();
        $query_elements = (array) json_decode($mSearch->toJson());
   
        $query_elements['sPattern'] = str_replace(' ', '* ', $query_elements['sPattern']) . '*';
   
        $mSearch->setJsonAlert($query_elements);
    }
}

osc_add_hook('search_conditions', 'cust_search_keyword_wildcard', 10); 
« Последнее редактирование: 21 Ноябрь 2017, 18:41:08 от Dis »
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 23
« Ответ #1 : 04 Октябрь 2018, 16:28:52 »
Тоже озадачился темой с поисковым движком, но я не пойму, как повлияет минимальное и максимальное разрешенное кол-во букв в слове в поиске, на поисковую часть слова?
Допустим, если в поиске набрать слово "мотоцикл", то объявление с заголовком "Аренда мотоциклОВ" уже не учитывается.
Как сделать, чтоб учитывалась часть слова тоже?

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #2 : 04 Октябрь 2018, 17:18:47 »
Тоже озадачился темой с поисковым движком, но я не пойму, как повлияет минимальное и максимальное разрешенное кол-во букв в слове в поиске, на поисковую часть слова?
Допустим, если в поиске набрать слово "мотоцикл", то объявление с заголовком "Аренда мотоциклОВ" уже не учитывается.
Как сделать, чтоб учитывалась часть слова тоже?
Вы код пробовали этот добавить ?
Поиск идёт по частям слов с ним прекрасно.
« Последнее редактирование: 04 Октябрь 2018, 17:46:34 от Dis »
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 23
« Ответ #3 : 04 Октябрь 2018, 18:19:26 »
Поиск идёт по частям слов с ним прекрасно.
спасибо, попробую. но хотелось бы и понять логику данного кода... по ссылке указанной вами выше четко написано:
Цитировать
Минимальное значение длины слова равно 4 символам. Это значит, что слова длинной менее 4 символов искаться не будут.
я понимаю так, что слово "Дом" не будет учитываться, а "Дома" будет.
 
Но каким образом это имеет отношение к части слова???
« Последнее редактирование: 04 Октябрь 2018, 18:21:37 от 1nstep »

Оффлайн Dis
  • Admin
  • *****
  • Сообщений: 1745
    • Шаблоны и плагины Osclass
« Ответ #4 : 04 Октябрь 2018, 20:57:05 »
Но каким образом это имеет отношение к части слова???
Код позволяет искать по частям слов, хоть по одной букве.
А в Osclass по умолчанию полнотекстовый поиск, с количеством символов от 4.
Доработки любой сложности.
Задание присылайте в личку.

  • *
  • Сообщений: 13
« Ответ #5 : 01 Март 2019, 15:21:21 »
Отличное решение.
Еще бы по цифрам поиск был бы, тогда на 5+  ;)

Оффлайн JpS
  • *
  • Сообщений: 7
  • -= JpS =-
    • QRLock - hide content with QRCode
« Ответ #6 : 13 Декабрь 2019, 12:27:14 »
Вот бы еще сфинкса прикрутили бы, вообще бы был зверь-поиск ;)
-= JpS =-

  • *
  • Сообщений: 7
« Ответ #7 : 16 Апрель 2020, 13:44:56 »
ВЕЛИКОЛЕПНО!
Спасибо!
 :-*

  • *
  • Сообщений: 8
« Ответ #8 : 29 Июнь 2020, 21:08:06 »
А в какую часть functions.php шаблона надо вставить этот код?
Спасибо за понимание
« Последнее редактирование: 30 Июнь 2020, 15:22:48 от Mnu »

Оффлайн Mnu
  • *****
  • Сообщений: 249
« Ответ #9 : 30 Июнь 2020, 15:23:13 »
А в какую часть functions.php шаблона надо вставить этот код?
Спасибо за понимание
Куда угодно, самое главное не внутрь другой функции.

  • *
  • Сообщений: 9
« Ответ #10 : 11 Январь 2021, 19:49:26 »
В Osclass по умолчанию используется полнотекстовый поиск по словам от 4 символов.
Изменить это можно на своём сервере или VPS в настройках MySQL, подробней тут:https://osclass.pro/nastrojka-mysql-polnotekstovogo-poiska/
Для тех у кого шаред хостинг, возможно поможет хак, с добавлением функции(в functions.php шаблона) в шаблон:
function cust_search_keyword_wildcard($params) {

    if ($params['sPattern']) {
        $mSearch =  Search::newInstance();
        $query_elements = (array) json_decode($mSearch->toJson());
   
        $query_elements['sPattern'] = str_replace(' ', '* ', $query_elements['sPattern']) . '*';
   
        $mSearch->setJsonAlert($query_elements);
    }
}

osc_add_hook('search_conditions', 'cust_search_keyword_wildcard', 10); 

после вставки данного кода сам сайт работает, но вылетает админка, 500 ошибка, не подскажите в чем причина? Шаблон Eva на сайте.

  • *
  • Сообщений: 9
« Ответ #11 : 12 Январь 2021, 18:36:57 »
В Osclass по умолчанию используется полнотекстовый поиск по словам от 4 символов.
Изменить это можно на своём сервере или VPS в настройках MySQL, подробней тут:https://osclass.pro/nastrojka-mysql-polnotekstovogo-poiska/
Для тех у кого шаред хостинг, возможно поможет хак, с добавлением функции(в functions.php шаблона) в шаблон:
function cust_search_keyword_wildcard($params) {

    if ($params['sPattern']) {
        $mSearch =  Search::newInstance();
        $query_elements = (array) json_decode($mSearch->toJson());
   
        $query_elements['sPattern'] = str_replace(' ', '* ', $query_elements['sPattern']) . '*';
   
        $mSearch->setJsonAlert($query_elements);
    }
}

osc_add_hook('search_conditions', 'cust_search_keyword_wildcard', 10); 

после вставки данного кода сам сайт работает, но вылетает админка, 500 ошибка, не подскажите в чем причина? Шаблон Eva на сайте.

решил данную проблему переименовав пфункцию, вот мой код который заработал:
function cust_search_keyword_wild($params) {

    if ($params['sPattern']) {
        $mSearch =  Search::newInstance();
        $query_elements = (array) json_decode($mSearch->toJson());
   
        $query_elements['sPattern'] = str_replace(' ', '* ', $query_elements['sPattern']) . '*';
   
        $mSearch->setJsonAlert($query_elements);
    }
}

osc_add_hook('search_conditions', 'cust_search_keyword_wild', 10);

возможно, кто-то столкнётся с данной проблемой

 


test