Лидер года
Хит
Битрикс модуль «TS Умный поиск по инфоблокам»

TS Умный поиск по инфоблокам

TS Умный битрикс поиск по инфоблокам и свойствам - очень умная система поиска битрикс на аякс по названию элемента, по свойствам, по артикулу, по тегам, др. полям и свойствам инфоблока.

Основные возможности системы поиска битрикс

  • В комплекте три компонента Поиск по заголовкамРезультаты поиска, Результаты поиск (каталог);
  • Ищет по нескольким инфоблокам;
  • Возможен поиск по названию товара, поиск по свойствам товара, поиск по артикулу, поиск по тегам и др. полям и свойствам инфоблока;
  • * Не использует поисковый индекс Битрикс, используется свой внутренний алгоритм;
  • *** Возможность разбивать результаты поиска по категориям;
  • Возможность поиска в двух режимах,  по точному совпадению слов и по вхождению слов в строку (рекомендуется, включен по умолчанию)
  • Возможность переключать режим поиска с помощью параметров из адресной строки sm=exact, например: ?q=Аксессуар+NEOMAX&sm=exact
    где &sm=exact - включает режим точного совпадения, иначе работает режим по умолчанию, по вхождению слов в строку.
  • Возможность передавать глобальную переменную apiSearchFilter в фильтр каталожных компонентов и реализовать страницу результатов поиска на стандартных Битрикс компонентах, например bitrix:catalog.search, bitrix:catalog.section;
  • Возможность вывода цен и скидок с конвертацией валют;
  • Возможность ресайза изображений (размер можно задавать двумя способами: 64x64 или 64)
  • Возможность задать двойную сортировку элементам в результатах;
  • Возможность отключить встроенные стили компонентов  и применить свои;
  • Современный, адаптивный и красивый дизайн;
  • Прост в установке и настройке;
  • + в планах реализация очень клевых и интересных функций, и шаблонов поиска.

* - поисковый индекс Битрикс хранится в БД сайта, занимает место,  на больших магазинах это даже гигабайты, обновляется при каждом изменении элементов, часто работает не должным образом.

*** - Если задано ограничение на результаты поиска в компоненте Поиск по заголовкам и заданы категории поиска, то результат будет подстраиваться под заданное ограничение, например: всего 30 товаров в результатах задано в настройках + 3 категории поиска, компонент будет стараться в каждой категории находить максимальное количество значений по формуле 30 / 3 = 10, т.е. в каждой категории будет максимум 10 результатов, но если в первой категории было всего 2 результата, то во второй категории компонент может вывести (10 - 2) + 10 = 18 элементов, а в третьей будет 10, итого всего 30 элементов.
Пока сделана разбивка результатов поиска по категориям только в одном компоненте Поиск по заголовкам, чуть позже сделаем во втором.

Мультиязычность Битрикс

Это второй модуль, в котором я реализовал максимально гибкую поддержку многоязычности.
Все лэнги для компонентов берутся из их шаблонов, т.е. даже при копировании шаблона компонента все лэнги для компонента будут браться из скопированного шаблона, все тексты, все сообщения и т.д.
Т.е. для каждого языка сайта вы можете в шаблонах компонента все тексты изменять и для компонента.

Тексты сообщений из настроек компонента также можно переопределить в лэнгах шаблона, лэнгам шаблона я сделал максимальный приоритет, если они там прописаны, то подключаются в первую очередь лэнги из шаблона, независимо от настроек компонента, наглядно выглядит это так:

Лэнги шаблона и компонента

В красном прямоугольнике выделены пустые лэнги, вот если в них что-то вписать, то они будут подключаться и в шаблоне, и в компоненте в первую очередь, даже если заданы в настройках компонента, пока они пустые, используются лэнги из настроек компонента.

jQuery плагины

Для шаблона компонента Поиск по заголовкам написан jQuery-плагин:
$.fn.apiSearchTitle

Он подключается автоматически в шаблоне компонента в файле script.js
У плагина есть настройки, пока они заданы в самом шаблоне.
При копировании шаблона компонента вы максимально сможете изменять плагин под свои задачи.

Системные требования

Модуль я постарался сделать максимально совместимым со старыми редакциями, протестирован на редакциях:

  • 1С-Битрикс: Управление сайтом 15.5

Версия jQuery 1.8.3 + (либо на сайте, либо в настройках модуля включить)
Версия php 5.3 +

Обратите внимание!

1) Поиск ищет только по элементам инфоблока.

2) У модуля хитрая логика поиска, если вы введете две буквы, например по, то ничего конкретного скорее всего не найдете, если ищете слово почетный, то найдете абсолютно все элементы с этим словом.
Также будет искать по вариациям: почетная грамота, грамота почетная, грамоты, почетный и т.д.

3) Если не заработало или не появляются всплывающие результаты поиска, значит надо в настройках компонента попробовать подключить jQuery, если опять не заработали, значит какой-то конфликт библиотек jQuery, надо будет разбираться с проблемой, из коробки все работает.

4) Чем больше свойств вы укажите для поиска, тем медленнее он будет работать, но чаще всего это Название товара и свойство Артикул.
Максимум 30 свойств можно выбрать, если ничего не выбрано, то поиск ищет только в названиях элементов.

5) Система поиска битрикс протестирована в каталоге более 60 000 шт. товаров, по названию и артикулу ищет быстро, если у вас работает очень медленно, рекомендую задуматься над оптимизацией своего сайта, либо над сменой хостинга на более мощный, либо удалить модуль и пользоваться стандартным поиском Битрикс.

Установка модуля обычная, вы можете:

  1. Установить демо-версию модуля на свой сайт по кнопке Тестировать (N) дней введя в всплывающем окне адрес своего сайта, пример: https://tuning-soft.ru

  2. Купить модуль, активировать и загрузить на сайт по инструкции из раздела Помощь
    Как купить Битрикс модуль?
    Как активировать Битрикс модуль?

Краткая инструкция для опытных

1) После установки модуля перейдите в публичную часть сайта
2) Создайте раздел или страницу с помощью панели администрирования
3) В визуальном редакторе в панели компонентов справа найдите раздел Тюнинг-Софт -> Умный поиск элементов
4) Перетащите мышкой компоненты Поиск по заголовкам и Результаты поиска в область визуального редактора по очереди, первым должен быть Поиск по заголовкам
5) Настройте компоненты для работы хотя бы с одним инфоблоком:

  • В случае нескольких инфоблоков поиск работает автоматически только по Названию элемента
  • Поиск по Названию и по свойствам работает только для одного инфоблока и при выборе только одного инфоблока там же в настройках дополнительно для выбора появятся свойства выбранного инфоблока

6) Сохраните настройки компонента
7) Сохраните страницу

Все, система поиска должна работать.
Обладая знаниями разработчика вы можете размещать компоненты в любом месте сайта, настраивать систему поиска как удобно, если нет таких знаний, пишите мне.

Базовая настройка модуля после установки

Итак, делаем все, как в краткой инструкции, только наглядно со скриншотами

1) После установки модуля перейдите в публичную часть сайта
2) Создайте раздел или страницу с помощью панели администрирования
#
#

3) В визуальном редакторе в панели компонентов справа найдите раздел Тюнинг-Софт -> Умный поиск элементов
4) Перетащите мышкой компоненты Поиск по заголовкам и Результаты поиска в область визуального редактора по очереди, первым должен быть Поиск по заголовкам
#

5) Настройте компоненты для работы хотя бы с одним инфоблоком:
  • В случае нескольких инфоблоков поиск работает автоматически только по Названию элемента
  • Поиск по Названию и по свойствам работает только для одного инфоблока и при выборе только одного инфоблока там же в настройках дополнительно для выбора появятся свойства выбранного инфоблока
#

6) Сохраните настройки компонента
7) Сохраните страницу

Все, система поиска должна работать.

Технические данные

Опубликован:
05.12.2015
Обновлен:
18.04.2017
Версия:
3.1.0
Установок:
100 - 499
Битрикс:
Первый сайт, Старт, Стандарт, Малый бизнес, Эксперт, Бизнес
Адаптивность:
Да
Композит:
Да

История версий

Версия 3.1.0
[+] В компонент "Результаты поиска" добавлен параметр "Максимум элементов в результатах поиска", по умолчанию ограничение до 100.
Версия 3.0.9
[х] Фикс кодировки в строке поиска компонентов
Версия 3.0.8
[x] Фикс расчета координат скролла
Версия 3.0.7
[x] Исправлены артефакты скролла
Версия 3.0.6
[х] Изменено название модуля
Версия 3.0.5
[х] Еще улучшена кроссбраузерность
Версия 3.0.4
[х] Возможность использовать html-теги в лэнгах
[х] Небольшие изменения стилей поиска по заголовкам
Версия 3.0.3
Поиск по заголовкам
[x] Улучшена релевантность по названию
Результаты поиска
[x] Улучшена релевантность по названию, тегам, описанию анонса, детальному описанию.

Дополнительной настройки не требуется, все применится автоматически.
Версия 3.0.2
[х] Изменил настройки по умолчанию
Версия 3.0.1
[x] Все JS-скрипты шаблона убраны в хедер, чистый html в коде
Версия 3.0.0
Компонент "Поиск по заголовкам"
[+] Добавлен по умолчанию стилизованный скролл Baron
[+] В разделе настроек jQuery-плагины добавлено несколько "Тем скролла" (simple,winxp,macosx,ubuntu12)
[+] Немного изменен внешний вид поиска и цены
[+] В настройки компонента добавлена возможность задавать цвет фона
[+] Улучшена кроссбраузерность, удален html5, ul-списки  заменены на div-блоки
[x] Исправлена ошибка JS на устаревших браузерах
Версия 2.9.4
[х] Фикс подсветки поисковых запросов на кириллических сайтах
Версия 2.9.3
[x] Параметры компонента "Результаты поиска (каталог) (api:search.catalog)" равны параметрам штатного каталожного Битрикс компонента "Элементы раздела (bitrix:catalog.section)"
Версия 2.9.2
[x] Для разрешений или ширины области компонента "Поиск по заголовкам" <=320px подставляется класс .api-width-mini
Версия 2.9.1
[+] URL, ведущий на страницу с содержимым элемента раздела
Версия 2.9.0
[+] Добавлена настройка "Не очищать поисковый запрос"
[+] Добавлена возможность выводить значения свойств инфоблока типа "Список и Список множ."
[+] Текст ссылки на все результаты заменен на "Показать все результаты поиска"
[x] Оптимизирован поиск цен и изображений ТП для товара
[x] Изменения в шаблоне компонента "Поиск по заголовкам (api:search.title)"
Версия 2.8.3
[x] Исправлена кодировка в режиме поиска "Склонения слов"
Версия 2.8.2
[x] Фикс стилей всех компонентов [x] В обычном режиме вывода цен убрано (шт)
Версия 2.8.1
[x] Фикс стилей компонентов
Версия 2.8.0
[+] В разделе настроек "Цены" добавлена возможность задать "Свой символ валюты" в виде html/text
[x] Исправлены все найденные ошибки
Версия 2.7.0
[+] В настройки цен добавлена опция Расширенный вид цен
[+] Изменена сортировка торговых предложений при поиске изображений товара, сначала учитывается сортировка ТП, потом Цена ТП от меньшей к большей
Версия 2.6.1
[x] Исправлена релевантность
[x] Исправлена реакция поиска на ввод пробела
Версия 2.6.0
[+] Доработаны компоненты Результаты поиска и Поиск по заголовкам
[+] Добавлена настройка Релевантные заголовки самые первые
[x] Исправлена подсветка склоняемых фраз в результатах поиска
Версия 2.5.3
[x] Фикс обновлений
Версия 2.5.2
Компонент "Результаты поиска"
[+] Добавлена кнопка "Подробнее" с возможностью задать свои css-классы в настройках компонента
Версия 2.5.1
Компонент Результаты поиска
[х] Если у товара нет изображения, модуль будет искать его у торговых предложений
[х] В торговых предложениях исправлена возможность "Выводить картинку бренда"
[х] Изображение бренда будет ссылкой если она есть, иначе картинкой
[х] Для каждого инфоблока вывод разделов включается настройкой "Выводить разделы"
[х] Исправлены все найденные ошибки
Версия 2.5.0
Компонент "Результаты поиска"
[+] Добавлена настройка "Выводить картинку брэнда"
Для привязанных к товару брэндам/производителям справа над ценой в результатах поиска будет выводиться картинка
[x] Немножечко оптимизирован php-код для ускорения работы
Компонент "Поиск по заголовкам"
[+] Добавлена кнопка очистки поля и результатов поиск
[x] Блок с ценой перемещен вправо
Версия 2.4.0
Компонент "Результаты поиска"
[+] Блочная тема
[+] Выводится ссылка на раздел элемента
Версия 2.3.0
[+] Доработан компонент "Результаты поиска"
1) Добавлена плавная прокрутка к форме поиска, когда посетитель что-то ищет или листает постраничку в режиме AJAX
2) Добавлена кнопка очистки поля и результатов поиска
3) Блок с ценой перемещен вправо
Видео: https://youtu.be/xwxZ5nCvMTw
Версия 2.2.2
[x] Исправлена работа нескольких форм поиска на одной странице
[x] Исправлен вывод сообщения о не найденных результатах в компоненте "Результаты поиска"
[x] Еще немножечко оптимизирован код php для ускорения работы поиска
Версия 2.2.1
[х] Изменен режим поиска "Точное совпадение слов", не учитывалась перестановка слов.
Версия 2.2.0
[+] В параметры компонентов добавлены дополнительные поля и направления сортировки
[x] Исправлены все найденный ошибки версии 2.0
Версия 2.1.0
[+] Поиск по описанию анонса и детальному описанию
Вывод описания анонса и детального описания задается в полях отдельно для каждого инфоблока
[+] Вывод свойств типа Число
[x] Не показывать ссылку "Все результаты" если результатов меньше заданного
[x] Подсчет результатов для компонента "Поиск по заголовкам"
Версия 2.0.2
[x] Фикс cp1251 редакций
Версия 2.0.1
[x] Фикс новой версии
Версия 2.0.0
[+] Полностью переработанная версия модуля
[+] Оптимизирована и увеличена скорость поиска
[+] Кэширование изображений на стороне клиента
[+] Новые переработанные параметры компонентов с большими возможностями
[+] Новый компонент с результатами поиска как в каталоге api:search.catalog
Обертка компонента bitrix:catalog.section с возможностью выбора шаблона списка элементов каталога
[+] В компонент api:search.catalog добавлена возможность скрывать форму поиска и пользоваться только одним компонентом api:search.title, например в шапке сайта.
[+] Компонент api:search.page считает количество найденных в результате элементов и разделов
[+] Компонент api:search.page умеет автоматически искать в двух режимах с аякс и без, а также добавлен аякс и для постраничной навигации.
[+] Добавлена возможность искать по одним полям и свойствам, а выводить в результатах другие, т.е. раздельный режим поиска и вывода полей и свойств
[+] Добавлена возможность искать по разделам динамически и вручную выбором в настройках компонента
[+] Отдельно для каждого инфоблока расширены параметры поиска
[+] Добавлена возможность изменения поискового запроса пользователя регулярным выражением preg_replace()
Включает два режима поиска, который позволяет искать фразы без указанных символов, например: CW-835M, CW835M, CW 835M, CW835-M, CW835 M, CW-835-M
[+] В компонент api:search.title добавлен скролл, позволяет при небольших разрешениях и фиксированных панелях прокручивать результаты поиска, включается в настройках компонента.
[+] Улучшена верстка
[+] Во всех компонентах есть возможность отключить встроенные стили и применить свои из шаблона сайта

Обратите внимание!
Т.к. модуль был полностью переписан, вам необходимо настроить все компоненты поиска заново.
Версия 1.5.2
[x] Фикс для демо-версии
Версия 1.5.1
[x] в шаблонах компонентов доступны свойства элемента и торговые предложения
Версия 1.5.0
[+] Добавлена навигация с клавиатуры в "Поиск по заголовкам"
[+] Добавлены настройки jQuery в "Поиск по заголовкам" для фона и фиксированной области, в которой может быть размещен поиск
[+] Добавлено третье поле для сортировки списка элементов
[x] Пустые значения свойств больше не выводятся
[x] Переработаны компоненты для ускорения поиска
Версия 1.4.3
[x] Вывод цены товара с учетом торговых предложений (наименьшая цена выводится)
[x] Поиск изображений товара в торговых предложениях
Если у товара нет изображения, поисковик будет искать его в торговых предложениях по общей сортировке элементов
Обратите внимание!
Изменены шаблоны и компоненты, возможны проблемы на скопированных шаблонах
Версия 1.4.2
[x] активность разделов
Версия 1.4.1
[х] фикс ЧПУ в результатах поиска
Версия 1.4.0
[+] Добавлен режим поиска:
1) Вхождение всех слов (по умолчанию)
2) Точное совпадение
[+] Добавлен поиск по полям ID, TAGS
[+] Добавлен поиск по свойствам и полям нескольких инфоблоков в пределах одного типа.
[+] Добавлена возможность переключать режим поиска с помощью параметров из адресной строки sm=exact, например: ?q=Аксессуар+NEOMAX&sm=exact
где &sm=exact - включает режим точного совпадения, иначе работает режим по умолчанию.
Версия 1.3.0
[+] Добавлен вывод свойств в результатах поиска, включается опцией "Выводить свойства"
[+] Добавлена опция "Названия полей для шаблона" - если выводите свойства, то необходимо выбрать и тут все названия свойств, опция появляется только для режима работы с одним инфоблоком.
Версия 1.2.0
[+] Улучшен алгоритм поиска

[+] В компонент api:search.title Добавлена глобальная переменная apiSearchFilter в которой содержится фильтр для передачи в каталожные компоненты

[+] Добавлена совместимость со стандартным компонентом bitrix:catalog.section
В значение ключа фильтра FILTER_NAME впишите apiSearchFilter и стандартный каталожный компонент будет слушать поиск, пример:
"FILTER_NAME" => "apiSearchFilter"

[+] Добавлена совместимость со стандартным компонентом bitrix:catalog.search
Необходимо скопировать шаблон компонента bitrix:catalog.search и заменить значение ключа фильтра FILTER_NAME на apiSearchFilter в компоненте bitrix:catalog.section примерно в строке 98, пример:
"FILTER_NAME" => "apiSearchFilter"

Если вы понимаете, что делаете, то компонент bitrix:search.page можно вообще здесь удалить из шаблона т.к. он не будет больше использоваться, оставить только код вызова bitrix:catalog.section, а лучше вообще от него отказаться и сделать результаты поиска на компоненте bitrix:catalog.section
Версия 1.1.1
[x] исправлены ошибки
Версия 1.1.0
[+] добавлен вывод цен, конвертация валют, вывод скидок на товар
[+] добавлен выбор, вывод и ресайз изображений (размер можно задавать двумя способами: 64x64 или 64)
[+] добавлен индикатор аякс-поиска
Версия 1.0.2
[x] исправлены ошибки
Версия 1.0.1
[x] исправлены ошибки
Установка модуля