Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

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

Ответов: 3
Просмотров: 3346
Последний ответ 18 Мая 2012, 11:08:37
от web-industry
Фильтр по полю типа выпадающий список с множественным выбором

Автор sergeronРаздел Шаблоны XSLT

Ответов: 5
Просмотров: 4390
Последний ответ 20 Мая 2013, 09:20:22
от admin
Не показывать объекты каталога, пока не сработает фильтр

Автор CubesРаздел Макросы UMI.CMS

Ответов: 4
Просмотров: 805
Последний ответ 25 Апреля 2015, 09:46:26
от e.ioffe
Фильтр по товарам каталога (строковое оформление)

Автор koroganРаздел Шаблоны TPL

Ответов: 3
Просмотров: 1776
Последний ответ 10 Июля 2012, 04:32:02
от admin
Фильтр для товаров выбранных с помощью usel

Автор webtrendРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 313
Последний ответ 01 Июня 2016, 22:05:16
от aghigay

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

*

Cubes

  • *
  • 13
  • +0/-0
    • Просмотр профиля
Умный фильтр в каталоге
« : 28 Мая 2015, 15:01:04 »
Здравствуйте! Возникла проблема следующего характера: имеется фильтр по каталогу, одно из полей "Название", допустим один из объектов каталога содержит довольно длинную фразу в данном поле (например: "Супер тонкий телевизор"). Если вписать в фильтре в поле "Название" фразу "Телевизор тонкий", то ничего найдено не будет, так как фильтр ищет точное совпадение. Что в этом случае можно сделать? Можно ли реализовать, чтобы фильтр работал по частичному совпадению, т.е. по запросу "тонкие телевизоры" было что-то найдено? Спасибо!

*

Cubes

  • *
  • 13
  • +0/-0
    • Просмотр профиля
Re: Умный фильтр в каталоге
« Ответ #1 : 28 Мая 2015, 15:25:35 »
Забыл упомянуть, используется tpl.

*

Cubes

  • *
  • 13
  • +0/-0
    • Просмотр профиля
Re: Умный фильтр в каталоге
« Ответ #2 : 29 Мая 2015, 11:42:07 »
Отвечу сам на свой вопрос. При фильтрации формируются параметры в url: ?fields_filter["название поля"]="текст". Если в поисковой фразе есть пробелы, они заменяются на +. Например фраза: "Супер тонкий телевизор", будет в url "Супер+тонкий+телевизор". Фильтрация по текстовому полю осуществляются с помощью атрибута "Like" (т.е. ищем входит ли наша подстрока в целую строку), поэтому если искать "Супер телевизор", а в базе целая строка - "Супер тонкий телевизор", найдено ничего не будет! Поэтому нужно заменить пробел(+) на %(любое кол-во символов).
Если средствами js, то : .value.replace(new RegExp(" ",'g'),"%").

Остается проблема с порядком слов, т.е. если написать "телевизор тонкий", то поиск ничего не даст. Здесь уже надо переписывать сам метод фильтрации, как и в случае с частичным совпадением.
« Последнее редактирование: 29 Мая 2015, 11:45:18 от Cubes »

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re: Умный фильтр в каталоге
« Ответ #3 : 29 Мая 2015, 12:20:02 »
на своей практике, поиск по названию всегда выносим в отдельный поиск (на основе модуля search) и при необходимости переписываем данную функцию, для добавления немного морфологии в логике поиска.

P.S. То есть, в фильтре ищем только по полям типа выпадающий список, галочка, число, а строка уже отдельным функционалом