xandeadx.ru Блог музицирующего веб-девелопера

Drupal → Модуль Faceted Search — поиск с помощью "уточнений"

Опубликовано в

Описание

Модуль Faceted Search организует на сайте так называемый фасетный поиск (фасетную навигацию). Смысл его в том, что результаты поиска можно уточнять с помощью различных характеристик материала — автор, тип, термин, дата создания и т.п.

Фасетный поиск на drupal.org

Например если у вас интернет магазин по продаже электронной технике, и пользователь вводит в поиск фразу аудио плеер. На странице с результатами, помимо самих результатов, будут присутствовать фасеты:

Раздел: аудиотехника (54), компьютерная техника (85)
Брэнд: Apple (25), Samsung (68), iRiver (78)
Наличие на складе: есть (456), нет (12)
Цена: 100-1000$ (45), 1000-10000$ (12)

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

Фасетный поиск
Результаты поиска после уточнения по бренду

С одной стороны это альтернатива раскрытым фильтрам в Views, с другой альтернатива стандартному расширенному поиску.

Как это работает в живую, можно посмотреть на официальной демо страничке модуля.

Установка

1. Скачиваем последнюю версию модуля.

2. Распаковываем в sites/all/modules

3. Идём на страницу admin/build/modules и включаем нужные модули:

  • Faceted Search — ядро модуля (обязательно).
  • Faceted Search UI — админка модуля (обязательно, после настройки можно отключить).
  • Taxonomy Facets — добавляет фасет по терминам таксономии.
  • Author Facet — добавляет фасет по автору материала.
  • Content Type Facet — добавляет фасет по типу материала.
  • Date Authored Facet — добавляет фасет по дате создания материала.
  • Date Facets Format — добавляет возможность изменить формат дат для фасета по датам.
  • Faceted Search Views — позволяет выводить результаты поиска в представлении Views.
  • Field Keyword Filter — текстовый поиск по отдельным полям.

Использование

Идём на страницу admin/settings/faceted_search и с помощью таба Add environment добавляем новый поиск.

Раздел Basic information

Name — название поиска. Будет выводиться на странице admin/settings/faceted_search.

Title — заголовок, выводящийся на странице поиска.

Content types — типы контента, которые будут участвовать в поиске.

Base path — адрес, по которому будет доступен фасетный поиск.

Start page — адрес, который откроется если полностью удалить все условия.

Let unpublished nodes appear in search results — добавлять в результаты неопубликованные материалы.

Скриншот.

Раздел Facets

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

Скриншот.

Раздел Results page

Display style — стиль вывода результатов поиска: Extracts значит выводить как при обычном поиске (подсвеченный текст, автор, дата); Teasers значит выводить тизеры материалов с помощью соответствующего node.tpl.php.

Use the Extracts display style selectively — Если опция отмечена, то стиль Extracts будет применяться всегда, если введено ключевое слово. Если не отмечать эту опцию то можно использовать модуль в качестве замены навигации по терминам таксономии.

Раздел Current search

Позволяет включить блок Текущий поиск, в котором отображаются условия поиска:

Блок 'Текущий поиск'

Раздел Keyword search

Позволяет включить функцию поиска по тексту:

Блок 'Текстовый поиск'

Скриншот настроек раздела.

Раздел Guided search

Позволяет включить блок Направленный поиск в котором собственно и размещаются фасеты:

Блок 'Направленный поиск'

Скриншот настроек раздела.

С остальным пока не разобрался :)

После создания поиска, нужно разместить необходимые блоки в один из регионов, и установить им видимость, если это необходимо.

Дополнительные модули

CCK Facets — возможность создавать фасеты по cck полям.

Ranged Search for Faceted Search — возможность создавать фасеты по диапазонам чисел и значений.

Способ создания фасетной навигации под Drupal 7.

Написанное актуально для 6.x-1.0-beta2
Похожие записи

Комментарии RSS

Интересно, нужен был поиск по части слова, попробовал почти все модули для поиска, с faceted так до конца и не разобрался, в итоге сделал на vews

да, насколько понял из коробки он не умеет искать по части слова, видимо всё упирается в производительность LIKE %

Как увеличить количество выводимых результатов на больше 10?

Как увеличить количество выводимых результатов на больше 10?

http://site.com/admin/content/node-settings
Изменить количество материалов на главной странице.

Правильно я понимаю, что поиск на d.org сделан на фасеточной технологии?
http://gyazo.com/8fb9b1e9ea9457b66ad72933d13af810.png

да

А ещё говорят что поиск друпал.орг-а работает на Apache Solr Multisite Search - или они совместно работают?

кто "они"?

Прошу прощения ошибся модулем, вот на этом работает Apache Solr Search Integration
говорят тут

мне вот интересно, можно ли, используя уберкарт для 6 друпала, на фасетной технологии реализовать фильтры для различных категорий товаров (например, для ноутбуков - свои, для жестких дисков свои наборы)?

почему могут не выводиться фасетные блоки на страницах термина таксономии?

Фасетный поиск и на Commerce Kickstart
http://demo.commerceguys.com/ck/products
Но вот как сделать, чтобы при выборе checkbox или перетаскивания ползунка не автоматом срабатывал поиск, а появлялось как на , например, Яндекс Маркете - Выбрано моделей: 105 Показать - (id="guru_filters_form_link")
То есть пользователь выбирает несколько фасетов, а потом уже смотрит - так гораздо удобнее!
Но как это сделать? Куда копать?

копать в сторону ajax

Это понятно...))) ручками надо кодить и кодить...
Может встречали какие то готовые, подобные решения...
Или там всё не так сложно.
Отключить автосабмит и выводить ссылку рядом с кликом....

Накопал - Ajax facets
Чтобы включить модуль, нужно установить/включить зависимые. В случае со сборкой кикстарт 2 - останется только Apache Solr - правда сам сервер можно не настраивать, так как установлен уже внутренний Server, он будет работать по его индексу отлично - нужно изменить "Configure facet display" с "Links with checkboxes" на "Ajax multiple checkboxes". Так же ещё будет - Ajax selectbox.
У них есть опция - Display the number of matching items (If checked, the number of matching items will be output with the color square).
Вот как это работает - Ajax facets with links

здорово

А аналог для D7 есть? На drupal.org вроде говорят что для D7 не будет аналога.

а в чем преимущества перед аналогом - раскрытым фильтром?

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании